Python library gevent
, version 0.13.6 (the current version on PyPI) will not pip install
on OS X Lion, Python 2.7 (and probably others.) It works fine on Snow Leopard.
How can I get this library installed?
Bonus points if it can be done using pip install
, rather than a manual or custom process, because then it will play nicely with automated builds.
Here is my pip install
output:
pip install gevent Downloading/unpacking gevent Running setup.py egg_info for package gevent Requirement already satisfied (use --upgrade to upgrade): greenlet in ./tl_env/lib/python2.7/site-packages (from gevent) Installing collected packages: gevent Running setup.py install for gevent building 'gevent.core' extension gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -g -O2 -DNDEBUG -g -O3 -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c gevent/core.c -o build/temp.macosx-10.6-intel-2.7/gevent/core.o In file included from gevent/core.c:225: gevent/libevent.h:9:19: error: event.h: No such file or directory gevent/libevent.h:38:20: error: evhttp.h: No such file or directory gevent/libevent.h:39:19: error: evdns.h: No such file or directory gevent/core.c:361: error: field ‘ev’ has incomplete type gevent/core.c:741: warning: parameter names (without types) in function declaration gevent/core.c: In function ‘__pyx_f_6gevent_4core___event_handler’: gevent/core.c:1619: error: ‘EV_READ’ undeclared (first use in this function) gevent/core.c:1619: error: (Each undeclared identifier is reported only once gevent/core.c:15376: warning: assignment makes pointer from integer without a cast [... about 1000 more lines of compiler errors...] gevent/core.c:15385: error: dereferencing pointer to incomplete type gevent/core.c: In function ‘__pyx_pf_6gevent_4core_4http___init__’: gevent/core.c:15559: warning: assignment makes pointer from integer without a cast gevent/core.c: At top level: gevent/core.c:21272: error: expected ‘)’ before ‘val’ lipo: can't figure out the architecture type of: /var/folders/s5/t94kn0p10hdgxzx9_9sprpg40000gq/T//cczk54q7.out error: command 'gcc-4.2' failed with exit status 1 Complete output from command /Users/jacob/code/toplevel/tl_env/bin/python -c "import setuptools;__file__='/Users/jacob/code/toplevel/tl_env/build/gevent/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /var/folders/s5/t94kn0p10hdgxzx9_9sprpg40000gq/T/pip-s2hPd3-record/install-record.txt --install-headers /Users/jacob/code/toplevel/tl_env/bin/../include/site/python2.7: running install running build running build_py running build_ext building 'gevent.core' extension gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -g -O2 -DNDEBUG -g -O3 -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c gevent/core.c -o build/temp.macosx-10.6-intel-2.7/gevent/core.o
The Apple-provided build of Python is installed in /System/Library/Frameworks/Python. framework and /usr/bin/python , respectively.
Don't post the entire thing! That's too much! 90% of the time, the first error is enough...
gevent/libevent.h:9:19: error: event.h: No such file or directory
This means that the library which provides the event.h
header is not installed. The library is called libevent (website).
In general, compilation errors like these are a flaw in the build scripts. The build script should give an error message that libevent is not installed, and it is a bug that it did not do so.
To get libevent from MacPorts and then manually tell compiler with CFLAGS
environment variable where to find event.h
and libevent
while running pip.
sudo port install libevent CFLAGS="-I /opt/local/include -L /opt/local/lib" pip install gevent
You can also use homebrew for installing libevent : brew install libevent
(from David Wolever's comment)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With