2015-04-06 28 views
2

我想在我的Mac上安装较旧版本的Python。我目前正在运行2.7.9,但我们的生产环境正在运行2.7.6。 (与gevent和2.7.9存在兼容性问题。)pyenv并安装某些Python包

我找到了pyenv它允许我安装各种版本。我用brew安装了pyenv并安装了2.7.6。然后我创建了一个与virtualenv中使用2.7.6以下命令:

mkvirtualenv my_env --python=/Users/dustin/.pyenv/versions/2.7.6/bin/python 

这似乎很好地工作,我跑的Python 2.7.6。我遇到的问题是,我无法使用诸如Cython或M2crypto等pip来安装某些软件包。我得到C编译错误。

clang: error: linker command failed with exit code 1 (use -v to see invocation) 

error: command 'clang' failed with exit status 1 

如果我在没有指定Python版本的情况下创建virtualenv,这些包安装正常。我该如何解决?

回答

0

这可能是由于试图在较新版本的OS X上运行较旧版本的Python 2.7.x(如2.7.6)。如果您在OS X 10.10上,那很可能是问题所在。见http://bugs.python.org/issue21811。您可能需要至少添加_osx_support.py的修补程序。如果没有,请尝试使用pip-v运行并更新您的问题和结果。

更新:有了您提供的附加信息,显然您已经遇到了2.7.8中发布的Issue21811更改中修复的OS X 10.10支持问题。特别是,需要更改configure以正确解析两位数小版本号(10);否则,configure中的代码错误地认为您正在运行一个非常旧的OS X版本,并生成过时的链接指令。你应该支持https://hg.python.org/cpython/rev/2672e30d9095https://hg.python.org/cpython/rev/a7ab09e00dbc

+0

以下是试图安装cython的详细日志:http://pastebin.com/bQyMP9Tr 好奇的为什么它试图使用'python.exe' – Dustin