I'm trying to push my Python3 app to Heroku. It uses gevent
which has a Cython
dependency. When I try to push to Heroku, I get this error:
Running cython -o gevent.core.c gevent/core.pyx # !EV_USE_SIGNALFD && !defined(LIBEV_EMBED) && !defined(_WIN32)
sh: cython: not found
Traceback (most recent call last):
File "util/cythonpp.py", line 801, in <module>
process_filename(filename, options.output_file)
File "util/cythonpp.py", line 85, in process_filename
output = run_cython(pyx_filename, sourcehash, output_filename, banner, comment)
File "util/cythonpp.py", line 529, in run_cython
system(command, comment)
File "util/cythonpp.py", line 539, in system
raise AssertionError('%r failed with code %s' % (command, result))
AssertionError: 'cython -o gevent.core.c gevent/core.pyx' failed with code 32512
make: *** [gevent/gevent.core.c] Error 1
----------------------------------------
Command /app/.heroku/python/bin/python -c "import setuptools; __file__='/app/.heroku/src/gevent/setup.py'; exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" develop --no-deps failed with error code 1 in /app/.heroku/src/gevent
Storing complete log in /app/.pip/pip.log
! Push rejected, failed to compile Python app
How can I fix this?
From the Heroku FAQ...
Can I require modules with C extensions?
Yes. If the module will install properly with pip. Most libraries that are required for web applications are available at build time.
However, sometimes a shared library needed for a module isn’t available. If this becomes a problem for you, you should contact
support@heroku.com
for help.
...so you'll probably have to e-mail them to get gevent
and/or cython
support.