如何在Mac OS X Lion上安装Python库'gevent' [英] How can I install the Python library 'gevent' on Mac OS X Lion
问题描述
Python库gevent
,版本0.13.6(PyPI的当前版本)在OS X Lion,Python 2.7(可能还有其他版本)上不是pip install
.在Snow Leopard上运行良好.
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.
如何安装该库?
如果可以使用pip install
而不是手动或自定义过程来完成,则奖励,因为这样可以在自动构建中很好地发挥作用.
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.
这是我的pip install
输出:
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
推荐答案
不要发布整个内容!这太多了! 90%的时间,第一个错误就足够了...
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
这意味着未安装提供event.h
头的库.该库称为libevent(网站).
This means that the library which provides the event.h
header is not installed. The library is called libevent (website).
通常,诸如此类的编译错误是构建脚本中的缺陷.生成脚本应显示一条错误消息,表明未安装libevent,这是一个错误,未安装libevent.
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.
要从MacPorts获取libevent,然后在运行pip时手动告诉具有CFLAGS
环境变量的编译器在哪里可以找到event.h
和libevent
.
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
您还可以使用自制软件安装libevent:brew install libevent
(摘自David Wolever的评论)
You can also use homebrew for installing libevent : brew install libevent
(from David Wolever's comment)
这篇关于如何在Mac OS X Lion上安装Python库'gevent'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!