Virtualenvs赢得';在OSX上从64位Python切换到32位Python后无法工作

Virtualenvs赢得';在OSX上从64位Python切换到32位Python后无法工作,python,virtualenv,Python,Virtualenv,我用Python.org上的官方DMG安装程序重新安装了Python 2.7,因为我需要使用一个预编译的二进制文件,而这个二进制文件在我的64位Python安装中被阻塞了。 (重新编译以64位运行对我来说太难了,不是一个选项) 它成功了,Python mac安装程序修复了所有链接,因此我的新Python安装是32位的,但是我用64位Python创建的所有virtualenv都不能再使用Python了,下面是输出: dyld: Library not loaded: @executable_pat

我用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吗?

我会继续重新创建它们。bin文件夹中的“python”可执行文件是一个可执行文件,可能特定于您的体系结构和/或python二进制文件。您可以保存所有已安装的python软件包,并使用pip在新的虚拟环境中重新安装它们:

pip freeze -E lepoc > requirements.txt
pip install -E newve -r /path/to/pip-requirements.txt

另请参见

Hum,这是我想要避免的…此外,我甚至不能调用
pip freeze
,因为python不可用…您不需要在virtualenv中运行pip,您可以在系统python解释器的上下文中运行它。此外,我没有看到任何缺点,因为所有的软件包都重新安装了,这应该不会有太多的工作。我宁愿做一点干净的额外工作,也不愿冒着在编译为32位代码的cpython东西失败后出现奇怪副作用的风险。使用这些命令会产生奇怪的效果,但我只是在服务器上使用了pip freeze,重新创建了virtualenv,一切都准备就绪,谢谢