title: Dockerfile: Python.h: No such file or directory
body: <p>I have a simple dockerfile that I am using to run containers on AWS, I'm hitting an issue though when installing <code>s3fs</code>, which is strange since I've used this snippet in previous dockerfiles without issue.</p>
  <p>Is it something with the distribution?</p>
  <p>Error:</p>
  <pre><code>multidict/_multidict.c:1:10: fatal error: Python.h: No such file or directory
  </code></pre>
  <p>Dockerfile:</p>
  <pre><code>FROM amazonlinux:latest
  
  
  RUN yum -y install which unzip aws-cli \
      &amp;&amp; yum install -y python3-pip python3 python3-setuptools \
      &amp;&amp; yum install -y tar.x86_64 \
      &amp;&amp; DEBIAN_FRONTEND=noninteractive yum install -y ksh
  
  
  RUN pip3 install boto3 \
      &amp;&amp; yum install -y gcc \
      &amp;&amp; pip3 install s3fs
  </code></pre>
  <p>Here is the output log:</p>
  <pre><code>Installing collected packages: fsspec, docutils, botocore, typing-extensions, aioitertools, wrapt, attrs, chardet, multidict, async-timeout, idna, yarl, aiohttp, aiobotocore, s3fs
    Found existing installation: botocore 1.19.11
      Uninstalling botocore-1.19.11:
        Successfully uninstalled botocore-1.19.11
    Running setup.py install for wrapt: started
      Running setup.py install for wrapt: finished with status 'done'
    Running setup.py install for multidict: started
      Running setup.py install for multidict: finished with status 'error'
      Complete output from command /usr/bin/python3 -u -c &quot;import setuptools, tokenize;__file__='/tmp/pip-build-l35mgnnl/multidict/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))&quot; install --record /tmp/pip-7d6e5wlf-record/install-record.txt --single-version-externally-managed --compile:
      **********************
      * Accellerated build *
      **********************
      running install
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-3.7
      creating build/lib.linux-x86_64-3.7/multidict
      copying multidict/_abc.py -&gt; build/lib.linux-x86_64-3.7/multidict
      copying multidict/__init__.py -&gt; build/lib.linux-x86_64-3.7/multidict
      copying multidict/_multidict_base.py -&gt; build/lib.linux-x86_64-3.7/multidict
      copying multidict/_multidict_py.py -&gt; build/lib.linux-x86_64-3.7/multidict
      copying multidict/_compat.py -&gt; build/lib.linux-x86_64-3.7/multidict
      running egg_info
      writing multidict.egg-info/PKG-INFO
      writing dependency_links to multidict.egg-info/dependency_links.txt
      writing top-level names to multidict.egg-info/top_level.txt
      reading manifest file 'multidict.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      warning: no previously-included files matching '*.pyc' found anywhere in distribution
      warning: no previously-included files found matching 'multidict/_multidict.html'
      warning: no previously-included files found matching 'multidict/*.so'
      warning: no previously-included files found matching 'multidict/*.pyd'
      warning: no previously-included files found matching 'multidict/*.pyd'
      no previously-included directories found matching 'docs/_build'
      writing manifest file 'multidict.egg-info/SOURCES.txt'
      copying multidict/__init__.pyi -&gt; build/lib.linux-x86_64-3.7/multidict
      copying multidict/_multidict.c -&gt; build/lib.linux-x86_64-3.7/multidict
      copying multidict/py.typed -&gt; build/lib.linux-x86_64-3.7/multidict
      creating build/lib.linux-x86_64-3.7/multidict/_multilib
      copying multidict/_multilib/defs.h -&gt; build/lib.linux-x86_64-3.7/multidict/_multilib
      copying multidict/_multilib/dict.h -&gt; build/lib.linux-x86_64-3.7/multidict/_multilib
      copying multidict/_multilib/istr.h -&gt; build/lib.linux-x86_64-3.7/multidict/_multilib
      copying multidict/_multilib/iter.h -&gt; build/lib.linux-x86_64-3.7/multidict/_multilib
      copying multidict/_multilib/pair_list.h -&gt; build/lib.linux-x86_64-3.7/multidict/_multilib
      copying multidict/_multilib/views.h -&gt; build/lib.linux-x86_64-3.7/multidict/_multilib
      running build_ext
      building 'multidict._multidict' extension
      creating build/temp.linux-x86_64-3.7
      creating build/temp.linux-x86_64-3.7/multidict
      gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/python3.7m -c multidict/_multidict.c -o build/temp.linux-x86_64-3.7/multidict/_multidict.o -O2 -std=c99 -Wall -Wsign-compare -Wconversion -fno-strict-aliasing -pedantic
      multidict/_multidict.c:1:10: fatal error: Python.h: No such file or directory
       #include &quot;Python.h&quot;
                ^~~~~~~~~~
      compilation terminated.
      error: command 'gcc' failed with exit status 1
      
      ----------------------------------------
  Command &quot;/usr/bin/python3 -u -c &quot;import setuptools, tokenize;__file__='/tmp/pip-build-l35mgnnl/multidict/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))&quot; install --record /tmp/pip-7d6e5wlf-record/install-record.txt --single-version-externally-managed --compile&quot; failed with error code 1 in /tmp/pip-build-l35mgnnl/multidict/
  The command '/bin/sh -c pip3 install boto3     &amp;&amp; yum install -y gcc     &amp;&amp; pip3 install s3fs' returned a non-zero code: 1
  </code></pre>
  <p>Any help is much appreciated!</p>