2

我正在尝试在我的 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。我遇到的问题是我无法使用 pip 安装某些软件包,例如 Cython 或 M2crypto。我得到 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,则这些包安装得很好。我该如何解决?

4

1 回答 1

0

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

更新:根据您提供的其他信息,很明显您遇到了 OS X 10.10 支持问题,这些问题已在 2.7.8 中发布的 Issue21811 更改中得到修复。特别是,configure需要更改才能正确解析两位数的次要版本号(10);否则,代码会configure错误地认为您在非常旧的 OS X 版本上运行并生成过时的链接指令。您应该反向移植https://hg.python.org/cpython/rev/2672e30d9095https://hg.python.org/cpython/rev/a7ab09e00dbc

于 2015-04-06T18:04:38.733 回答