在OSX上从64位切换到32位Python后,Virtualenvs将无法工作

时间:2011-02-06 17:20:57

标签: python virtualenv

我使用python.org上的官方DMG安装程序重新安装了Python 2.7,因为我需要使用在我的64位Python安装上阻塞的预编译二进制文件..
(重新编译它以64位运行对我来说太难了,不是一个选项)

它有效,Python mac安装程序修复了所有链接,所以我的新python安装是32位,但我用64位Python创建的所有virtualenv都不能再使用Python了,这是输出:

dyld: Library not loaded: @executable_path/../.Python
Referenced from: /Users/dom/django/.virtualenvs/lepoc/bin/python
Reason: no suitable image found.  Did find:
/Users/dom/django/.virtualenvs/lepoc/bin/../.Python: no matching architecture in universal wrapper
/Users/dom/django/.virtualenvs/lepoc/bin/../.Python: no matching architecture in universal wrapper
Trace/BPT trap

是否有可能修复(比如重新链接某些内容)或者我是否必须重新创建所有的virtualenv?

1 个答案:

答案 0 :(得分:3)

我会重新创建它们。 bin文件夹中的“python”可执行文件是可执行文件,可能特定于您的体系结构和/或python二进制文件。您可以使用pip:

保存所有已安装的python包并在新的虚拟环境中重新安装它们
pip freeze -E lepoc > requirements.txt
pip install -E newve -r /path/to/pip-requirements.txt

另见http://www.saltycrane.com/blog/2009/05/notes-using-pip-and-virtualenv-django/