我在让 virtualenv 工作方面遇到了很多麻烦。
首先我通过 pip 安装它,然后尝试设置一个 virtualenv。那没有用,我收到了这条错误消息:
ResNets-iMac:desktop zachary$ virtualenv anothertest
Using base prefix '/Applications/Canopy.app/appdata/canopy-1.5.1.2730.macosx-x86_64/Canopy.app/Contents'
New python executable in anothertest/bin/python
dyld: Library not loaded: @rpath/Python
Referenced from: /Users/zachary/Desktop/anothertest/bin/python
Reason: image not found
ERROR: The executable anothertest/bin/python is not functioning
ERROR: It thinks sys.prefix is u'/Users/zachary/Desktop' (should be u'/Users/zachary/Desktop/anothertest')
ERROR: virtualenv is not compatible with this system or executable
然后我完成了几乎所有可能的故障排除,并确定 Canopy 是问题所在。所以我删除了它,重新安装了virualenv(通过'pip uninstall virtualenv'然后'pip install virtualenv')现在每当我尝试做任何涉及virtualenv的事情时我都会收到这个错误:
dyld: Library not loaded: @rpath/Python
Referenced from: /Users/zachary/Library/Enthought/Canopy_64bit/User/bin/python
Reason: image not found
我不确定该怎么做,当我检查我的默认 python 版本时,我得到:
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
我对这一切都很陌生,我真的不知道我一直在做什么或如何解决这个问题,所以非常感谢任何帮助。
谢谢!
请您参考如下方法:
问题是您的系统上有多个版本的 Python。
您拥有 OSX 附带的 Python (/Library/Frameworks/Python.framework/Versions/2.7/bin/python),然后您拥有 Canopy 附带的 Python;这是 /Users/zachary/Library/Enthought/Canopy_64bit/User/bin/python。
您的路径将默认版本指向来自 Canopy 的版本,但 pip 是针对 Python 的默认系统版本安装的。
所以当你安装 virtualenv 时,它是针对默认版本的 Python 安装的;但是当您尝试创建一个虚拟环境时——由于您的路径设置方式,它正在尝试使用 Python 的 Canopy 版本——这就是错误的根源。
要解决此问题,您可以执行以下任一操作:
- 删除 Canopy,并使用 OSX 版本的 Python。
- 在 Canopy 版本的 Python 上安装 virtualenv。
- 修改您的 PATH,使 Python 的系统版本优先。
- 安装另一个版本的 Python(比如自制软件)并将其设置为默认版本。
您选择的分辨率将取决于您需要系统执行的操作。如果您需要与 Canopy 捆绑在一起的库,那么您需要选择选项 #2,否则选择任何其他选项。 #4 是最具破坏性的(因为它将涉及安装很多其他东西)。
