$ 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 1The 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