概要:pip install gevent
不起作用。
深入挖掘,我下载了gevent.tar.gz
并手动运行构建:python setup.py build
,得到同样的错误:
running build
running build_py
running build_ext
building 'gevent.core' extension
clang -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -U__llvm__ -DLIBEV_EMBED=1 -DEV_COMMON= -DEV_CLEANUP_ENABLE=0 -DEV_EMBED_ENABLE=0 -DEV_PERIODIC_ENABLE=0 -Ibuild/temp.macosx-10.10-x86_64-2.7/libev -Ilibev -I/Users/travisjohnson/.pyenv/versions/2.7.5/include/python2.7 -c gevent/gevent.core.c -o build/temp.macosx-10.10-x86_64-2.7/gevent/gevent.core.o
In file included from gevent/gevent.core.c:313:
In file included from gevent/libev.h:2:
...
29 various compiler warnings
...
29 warnings generated.
clang -bundle -bundle_loader python.exe -L/usr/local/opt/readline/lib -L/usr/local/opt/readline/lib -L/Users/travisjohnson/.pyenv/versions/2.7.5/lib -U__llvm__ build/temp.macosx-10.10-x86_64-2.7/gevent/gevent.core.o -o build/lib.macosx-10.10-x86_64-2.7/gevent/core.so
ld: file not found: python.exe
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command 'clang' failed with exit status 1
我的第一个想法是“看起来它正在告诉 clang 链接python.exe
进入某物”,最初我认为这是无稽之谈(这不是 Windows),但是:https://docs.python.org/devguide/setup.html#unix https://docs.python.org/devguide/setup.html#unix说 python.exe 是构建后 python 的默认名称(因为不区分大小写),所以现在我不知道。
我已经研究了几个小时了,但没有下一步。我在另一个项目中发现了类似的东西(我认为) https://bitbucket.org/yt_analysis/yt/issue/868/install-script-installation-fails-on-os-x,但没有解释原因或修复方法,只是修复了它(我检查了我的 xcode 和开发人员工具等是否是最新的)
我对下一步完全不知所措,有人能指出我正确的方向吗?
EDIT:进一步深入了解一步一步手动运行构建,我确实得到了this不出错的具体步骤:
- 查找该位置
python
二进制文件(不是 pyenv 使用的垫片)
- 手动运行
clang
日志中列出的命令,但替换python.exe
与我的路径python
二进制,即:/Users/username/.pyenv/versions/adid/bin/python2.7
所以看来它没有得到 python 二进制文件的正确路径?不幸的是,我不知道构建过程的其余部分,所以我不能继续自己继续,而且我不知道如何将此路径修正放入由setup.py
。我在更新到 10.10 之前没有这些问题(可能是其他问题,已经过去几天了,我做了其他事情),所以我不知道为什么这只是一个新问题。
显然这是我的 virtualenv 管理器的问题:
https://github.com/yyuu/pyenv/issues/273 https://github.com/yyuu/pyenv/issues/273
Unable to install compiled Python modules under pyenv on OS X 10.10
是问题的名称。
EDIT:不,不是。
这是一个错误python。 python 在 OSX 中进行操作系统版本比较的方式很幼稚,并且在 10.10 中突破了两位数,然后它会认为您使用的是更旧的 OSX。这通常会被忽视,除非在安装编译模块时(它用于做出一些决定)。
这是在这里修复的:https://bugs.python.org/issue21811 https://bugs.python.org/issue21811
我不记得 2.7.7 还是 2.7.8 是已发布修复的版本(但它是其中之一),但最终结果是您无法在 OSX 10.10 或更高版本上使用旧版本的 2.7。如果您遇到这个问题,那么我个人会推动升级所使用的 python 版本;)(2.7.11 无论如何都有一些很棒的 ssl 改进)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)