繁体   English   中英

无法在Mac OS X 10.10上构建python gevent

[英]Can't build python gevent on mac osx 10.10

简介: 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说python.exe是构建后python的默认名称(由于不区分大小写),所以现在我不知道。

我已经研究了好几个小时,没有下一步。 我在另一个项目中发现了类似的东西(我认为) ,但是没有说明原因或解决方法,只是解决了(我检查了我的xcode和开发人员工具是否最新)。

我对这里的下一步工作一无所知,有人可以指出我正确的方向吗?

编辑:进一步研究手动逐步运行该构建,我确实得到了以下特定步骤以不出错:

  • 查找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

Unable to install compiled Python modules under pyenv on OS X 10.10

编辑:不,不是。

这是python的错误。 python在OSX中进行OS版本比较的方法很幼稚,在10.10中用两位数打破,然后它认为您使用的是旧版本的OSX。 除了安装已编译的模块(用于制定决策的位置)外,这通常可能不会引起注意。

此问题已在此处修复: https//bugs.python.org/issue21811

我不记得2.7.7或2.7.8是发布的修复程序的版本(但它是其中之一),但是最终结果是您不能在OSX 10.10或更高版本上使用2.7的旧版本。 如果您遇到此问题,那么我个人将推动升级使用的python版本;)(2.7.11仍然对ssl进行了一些很棒的改进)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM