首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Mac OS X Lion上安装Python库‘gevent

如何在Mac OS X Lion上安装Python库‘gevent
EN

Stack Overflow用户
提问于 2011-10-03 09:33:35
回答 8查看 37.5K关注 0票数 64

Python库gevent,版本0.13.6 (PyPI上的当前版本)不能在OS X Lion、Python2.7(以及其他版本)上运行pip install。它在Snow Leopard上运行良好。

如何安装此库?

如果它可以使用pip install完成,而不是手动或自定义过程,那么就会得到加分,因为这样它就可以很好地处理自动构建。

下面是我的pip install输出:

代码语言:javascript
复制
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
EN

回答 8

Stack Overflow用户

发布于 2015-10-30 14:38:07

代码语言:javascript
复制
CFLAGS='-std=c99' pip install gevent

请参阅:Can't install gevent OSX 10.11

在OSX10.11上,clang默认使用c11,所以只需将其切换回c99即可。

票数 24
EN

Stack Overflow用户

发布于 2013-10-25 03:02:52

一段时间后,我意识到当从端口安装libevent时,上面提到的CFLAGS变量的路径有效,但从brew安装时无效。下面的方法对我很有效(在OSX Mavericks上):

代码语言:javascript
复制
$ brew install libevent
$ export CFLAGS="-I /usr/local/Cellar/libevent/2.0.21/include -L /usr/local/Cellar/libevent/2.0.21/lib"
$ pip install gevent
票数 18
EN

Stack Overflow用户

发布于 2013-08-09 08:34:22

这是我找到的最简单的方法:

使用自制软件安装libevent

代码语言:javascript
复制
$ brew install libevent

安装gevent

代码语言:javascript
复制
$ pip install gevent

这是我唯一能让它工作的方法。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7630388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档