$ pip install gevent-0.13.6.tar.gz Unpacking ./requirements/src/gevent-0.13.6.tar.gz Running setup.py egg_info for package from ... building 'gevent.core' extension /usr/bin/cc -fno-strict-aliasing -O3 -march=core2 -msse4.1 -w -pipe -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/brew/bin/../Cellar/python/2.7.1/include/python2.7 -c gevent/core.c -o build/temp.macosx-10.4-x86_64-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:15344: error: dereferencing pointer to incomplete type gevent/core.c:15358: error: dereferencing pointer to incomplete type gevent/core.c:15367: error: dereferencing pointer to incomplete type gevent/core.c:15385: error: dereferencing pointer to incomplete type gevent/core.c: At top level: gevent/core.c:21272: error: expected ‘)’ before ‘val’ error: command '/usr/bin/cc' failed with exit status 1
The tail of the error message isn't particularly useful, it suggests there's an error in the C code. However toward the top we see the event.h: No such file or directory complaint which seems to indicate that libevent is needed (which makes sense). The solution is straight forward, just install libevent, then use pip to install gevent:
$ brew install libevent $ export CFLAGS=-I/brew/include $ pip install gevent-0.13.6.tar.gz
And then everything just worked. You'll notice my homebrew installation is at (the non-standard location of) /brew/, so you'll probably need to tailor that to your own situation.
Thanks bradley,
ReplyDeleteI stumbled upon the same issue and your blog post was spot on.
Thanks once again!
-Sunil
For MacPorts:
ReplyDeleteexport CFLAGS="-I/opt/local/include -L/opt/local/lib"
Thnx you very much , this issue took me 2 crazy days
ReplyDelete- Minh Le