pyenv并安装某些Python包

时间:2015-04-06 17:49:24

标签: python cython pyenv

我正在尝试在Mac上安装旧版本的Python。我目前正在运行2.7.9,但我们的生产环境运行2.7.6。 (gevent和2.7.9存在兼容性问题。)

我发现pyenv允许我安装各种版本。我用brew安装了pyenv并安装了2.7.6。然后我使用以下命令创建了一个带有2.7.6的virtualenv:

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,这些包安装正常。我该如何解决这个问题?

1 个答案:

答案 0 :(得分: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