python的virtualenv的许多问题

Zac*_*ach 1 python macos virtualenv virtualenvwrapper python-2.7

让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
Run Code Online (Sandbox Code Playgroud)

然后,我完成了所有可能的故障排除,并决定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
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做,当我检查我的默认版本的python是什么时,我得到:

/Library/Frameworks/Python.framework/Versions/2.7/bin/python
Run Code Online (Sandbox Code Playgroud)

我对这一切都很新,我真的不知道我一直在做什么,或者如何解决这个问题,所以任何帮助都会非常感激.

谢谢!

Bur*_*lid 5

问题是您的系统上有多个版本的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安装的; 但是当你尝试创建虚拟环境时 - 由于你的路径设置方式,它正在尝试使用Canopy版本的Python - 这就是你的错误的来源.

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

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

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