python 的 virtualenv 的许多问题

Many Problems with python's virtualenv

我在让 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 (/Library/Frameworks/Python.framework/Versions/2.7/bin/python) 附带的 Python,然后您拥有 Canopy 附带的 Python;这是 /Users/zachary/Library/Enthought/Canopy_64bit/User/bin/python.

您的路径将默认版本指向来自 Canopy 的版本,但 pip 是针对 Python 的默认系统版本安装的。

所以当你安装 virtualenv 时,它是针对 Python 的默认版本安装的;但是当你尝试创建一个虚拟环境时 - 由于你的路径设置方式,它正在尝试使用 Python 的 Canopy 版本 - 这就是你的错误来源。

要解决此问题,您可以执行以下任一操作:

  1. 删除 Canopy,并使用 Python 的 OSX 版本。
  2. 在 Python 的 Canopy 版本上安装 virtualenv。
  3. 修改您的PATH,使Python的系统版本优先。
  4. 安装另一个版本的 Python(例如,自制软件)并将其设置为默认版本。

您选择的分辨率将取决于您需要系统执行的操作。如果您需要与 Canopy 捆绑在一起的库,那么您需要选择选项 #2,否则选择任何其他选项。 #4 是最具破坏性的(因为它将涉及安装很多其他东西)。

Enthought Canopy 网站推荐this:使用 venv,而不是 virtualenv。