title: Heroku can't find libssh2.h
body: <p>I'm trying to deploy a basic Flask application to Heroku.</p>
  
  <p>I've done one before which worked, but now that I've added SSH it won't deploy.</p>
  
  <p>This is my <code>requirements.txt</code>:</p>
  
  <pre><code>Flask==0.12.2
  Gunicorn==19.7.1
  parallel-ssh==1.2.0
  </code></pre>
  
  <p>The heroku build log is:</p>
  
  <pre><code>-----&gt; Python app detected
  
  -----&gt; Installing requirements with pip
  
         Collecting parallel-ssh==1.2.0 (from -r /tmp/build_42797fa48b085347364495c1df641f74/SnelleJelle-divulge-c28ba875636d44db493b3f331420150355401c3c/requirements.txt (line 3))
  
           Downloading parallel_ssh-1.2.0-cp36-cp36m-manylinux1_x86_64.whl (1.6MB)
  
         Collecting ssh2-python&gt;=0.6.0 (from parallel-ssh==1.2.0-&gt;-r /tmp/build_42797fa48b085347364495c1df641f74/SnelleJelle-divulge-c28ba875636d44db493b3f331420150355401c3c/requirements.txt (line 3))
  
           Downloading ssh2-python-0.7.0.post2.tar.gz (438kB)
  
         Collecting paramiko&lt;2.2 (from parallel-ssh==1.2.0-&gt;-r /tmp/build_42797fa48b085347364495c1df641f74/SnelleJelle-divulge-c28ba875636d44db493b3f331420150355401c3c/requirements.txt (line 3))
  
           Downloading paramiko-2.1.4-py2.py3-none-any.whl (173kB)
  
         Collecting gevent&gt;=1.1 (from parallel-ssh==1.2.0-&gt;-r /tmp/build_42797fa48b085347364495c1df641f74/SnelleJelle-divulge-c28ba875636d44db493b3f331420150355401c3c/requirements.txt (line 3))
  
           Downloading gevent-1.2.2-cp36-cp36m-manylinux1_x86_64.whl (1.7MB)
  
         Collecting pyasn1&gt;=0.1.7 (from paramiko&lt;2.2-&gt;parallel-ssh==1.2.0-&gt;-r /tmp/build_42797fa48b085347364495c1df641f74/SnelleJelle-divulge-c28ba875636d44db493b3f331420150355401c3c/requirements.txt (line 3))
  
           Downloading pyasn1-0.4.2-py2.py3-none-any.whl (71kB)
  
         Collecting cryptography&gt;=1.1 (from paramiko&lt;2.2-&gt;parallel-ssh==1.2.0-&gt;-r /tmp/build_42797fa48b085347364495c1df641f74/SnelleJelle-divulge-c28ba875636d44db493b3f331420150355401c3c/requirements.txt (line 3))
  
           Downloading cryptography-2.1.4-cp36-cp36m-manylinux1_x86_64.whl (2.2MB)
  
         Collecting greenlet&gt;=0.4.10 (from gevent&gt;=1.1-&gt;parallel-ssh==1.2.0-&gt;-r /tmp/build_42797fa48b085347364495c1df641f74/SnelleJelle-divulge-c28ba875636d44db493b3f331420150355401c3c/requirements.txt (line 3))
  
           Downloading greenlet-0.4.12-cp36-cp36m-manylinux1_x86_64.whl (42kB)
  
         Collecting six&gt;=1.4.1 (from cryptography&gt;=1.1-&gt;paramiko&lt;2.2-&gt;parallel-ssh==1.2.0-&gt;-r /tmp/build_42797fa48b085347364495c1df641f74/SnelleJelle-divulge-c28ba875636d44db493b3f331420150355401c3c/requirements.txt (line 3))
  
           Downloading six-1.11.0-py2.py3-none-any.whl
  
         Collecting asn1crypto&gt;=0.21.0 (from cryptography&gt;=1.1-&gt;paramiko&lt;2.2-&gt;parallel-ssh==1.2.0-&gt;-r /tmp/build_42797fa48b085347364495c1df641f74/SnelleJelle-divulge-c28ba875636d44db493b3f331420150355401c3c/requirements.txt (line 3))
  
           Downloading asn1crypto-0.24.0-py2.py3-none-any.whl (101kB)
  
         Collecting idna&gt;=2.1 (from cryptography&gt;=1.1-&gt;paramiko&lt;2.2-&gt;parallel-ssh==1.2.0-&gt;-r /tmp/build_42797fa48b085347364495c1df641f74/SnelleJelle-divulge-c28ba875636d44db493b3f331420150355401c3c/requirements.txt (line 3))
  
           Downloading idna-2.6-py2.py3-none-any.whl (56kB)
  
         Collecting cffi&gt;=1.7; platform_python_implementation != "PyPy" (from cryptography&gt;=1.1-&gt;paramiko&lt;2.2-&gt;parallel-ssh==1.2.0-&gt;-r /tmp/build_42797fa48b085347364495c1df641f74/SnelleJelle-divulge-c28ba875636d44db493b3f331420150355401c3c/requirements.txt (line 3))
  
           Downloading cffi-1.11.2-cp36-cp36m-manylinux1_x86_64.whl (419kB)
  
         Collecting pycparser (from cffi&gt;=1.7; platform_python_implementation != "PyPy"-&gt;cryptography&gt;=1.1-&gt;paramiko&lt;2.2-&gt;parallel-ssh==1.2.0-&gt;-r /tmp/build_42797fa48b085347364495c1df641f74/SnelleJelle-divulge-c28ba875636d44db493b3f331420150355401c3c/requirements.txt (line 3))
  
           Downloading pycparser-2.18.tar.gz (245kB)
  
         Installing collected packages: ssh2-python, pyasn1, six, asn1crypto, idna, pycparser, cffi, cryptography, paramiko, greenlet, gevent, parallel-ssh
  
           Running setup.py install for ssh2-python: started
  
             Running setup.py install for ssh2-python: finished with status 'error'
  
             Complete output from command /app/.heroku/python/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-xqi26x3e/ssh2-python/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-yn7ewtm4-record/install-record.txt --single-version-externally-managed --compile:
  
             running install
  
             running build
  
             running build_py
  
             creating build
  
             creating build/lib.linux-x86_64-3.6
  
             creating build/lib.linux-x86_64-3.6/ssh2
  
             copying ssh2/_version.py -&gt; build/lib.linux-x86_64-3.6/ssh2
  
             copying ssh2/__init__.py -&gt; build/lib.linux-x86_64-3.6/ssh2
  
             running egg_info
  
             writing ssh2_python.egg-info/PKG-INFO
  
             writing dependency_links to ssh2_python.egg-info/dependency_links.txt
  
             writing top-level names to ssh2_python.egg-info/top_level.txt
  
             reading manifest file 'ssh2_python.egg-info/SOURCES.txt'
  
             reading manifest template 'MANIFEST.in'
  
             writing manifest file 'ssh2_python.egg-info/SOURCES.txt'
  
             copying ssh2/agent.c -&gt; build/lib.linux-x86_64-3.6/ssh2
  
             copying ssh2/channel.c -&gt; build/lib.linux-x86_64-3.6/ssh2
  
             copying ssh2/error_codes.c -&gt; build/lib.linux-x86_64-3.6/ssh2
  
             copying ssh2/exceptions.c -&gt; build/lib.linux-x86_64-3.6/ssh2
  
             copying ssh2/fileinfo.c -&gt; build/lib.linux-x86_64-3.6/ssh2
  
             copying ssh2/listener.c -&gt; build/lib.linux-x86_64-3.6/ssh2
  
             copying ssh2/pkey.c -&gt; build/lib.linux-x86_64-3.6/ssh2
  
             copying ssh2/publickey.c -&gt; build/lib.linux-x86_64-3.6/ssh2
  
             copying ssh2/session.c -&gt; build/lib.linux-x86_64-3.6/ssh2
  
             copying ssh2/sftp.c -&gt; build/lib.linux-x86_64-3.6/ssh2
  
             copying ssh2/sftp_handle.c -&gt; build/lib.linux-x86_64-3.6/ssh2
  
             copying ssh2/statinfo.c -&gt; build/lib.linux-x86_64-3.6/ssh2
  
             copying ssh2/utils.c -&gt; build/lib.linux-x86_64-3.6/ssh2
  
             running build_ext
  
             building 'ssh2.pkey' extension
  
             creating build/temp.linux-x86_64-3.6
  
             creating build/temp.linux-x86_64-3.6/ssh2
  
             gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Ilibssh2/include -I/app/.heroku/python/include/python3.6m -c ssh2/pkey.c -o build/temp.linux-x86_64-3.6/ssh2/pkey.o -O3
  
             ssh2/pkey.c:527:21: fatal error: libssh2.h: No such file or directory
  
             compilation terminated.
  
             error: command 'gcc' failed with exit status 1
  
  
  
             ----------------------------------------
  
         Command "/app/.heroku/python/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-xqi26x3e/ssh2-python/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-yn7ewtm4-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-xqi26x3e/ssh2-python/
  
   !     Push rejected, failed to compile Python app.
  
   !     Push failed
  </code></pre>
  
  <p>It seems to install a lot of other dependencies, which is fine. But it somehow fails to find <code>libssh2.h</code>.</p>
  
  <p>What can I do about that?</p>