在Mac OS X Yosemite 10.10.3上的virtualenvwrapper的错误消息

时间:2015-04-19 16:02:59

标签: python virtualenv osx-yosemite virtualenvwrapper

我最近干净安装了Mac OS 10.10.3,并尝试建立一个python环境。但我无法让virtualenvwrapper工作。

我使用Homebrew安装了python 2和3。

$ which python
/usr/local/bin/python

$ which python3
/usr/local/bin/python3

$ which pip
/usr/local/bin/pip

$ which virtualenv
/usr/local/bin/virtualenv

$ which virtualenvwrapper.sh
/usr/local/bin/virtualenvwrapper.sh

以下是我的.bash_profile

中的行
export PATH=/usr/local/bin:$PATH
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh

virtualenv独立工作:$ source bin / activate

但是当我采购virtualenvwrapper.sh时。我收到以下错误消息。

/usr/local/opt/python/bin/python2.7: No module named virtualenvwrapper
virtualenvwrapper.sh: There was a problem running the initialization hooks. 

If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python and that PATH is
set properly.

我无法弄清楚出了什么问题。当我在终端回应VIRTUALENVWRAPPER_PYTHON时。它返回正确的路径。事实上,我的所有路径都是正确的。他们都指向自制程序目录。

我怎样才能让它发挥作用?

5 个答案:

答案 0 :(得分:19)

自问这个问题以来已经有一段时间了,但遇到同样的问题,我想添加我的解决方案,万一有人可能会发现它有用:

由于使用Python3安装了virtualenvwrapper,因此可以预见VIRTUALENVWRAPPER_PYTHON变量将指向Python3路径而不是Python2路径。

即.bash_profile更改:
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python

要:
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3

然后你可以开始使用virtualwrapper,即使没有为Python2安装(除非你想使用Python2显式创建环境,在这种情况下你可以探测到必须使用pip2安装它并指定相关的python路径)虚拟环境创建命令)。

答案 1 :(得分:9)

  

根据我们的评论交换,您只安装了virtualenvwrapper   你需要在python2上安装它。为此:

     

curl -O https://bootstrap.pypa.io/get-pip.py python2.7 ./get-pip.py   --user~ / .local / bin / pip install virtualenvwrapper我自己的设置正好相反 - 我使用python2进行工作,所以安装virtualenv for 3.x in   〜/ local - 希望有所帮助。

非常感谢你。你的答案指出了我正确的方向。

我通过卸载virtualenv所有东西解决了这个问题。

pip uninstall virtualenv virtualenvwrapper

然后我用pip2.7再次安装了所有内容。

pip2.7 install virtualenv virtualenvwrapper

现在终端没有抱怨我在找到virtualwrapper.sh

时找不到该模块
. /usr/local/bin/virtualenvwrapper.sh

但是,python3是默认的python。

$ mkvirtualenv myenv
Using base prefix '/usr/local/Cellar/python3/3.4.3/Frameworks/Python.framework/Versions/3.4'
New python executable in myenv/bin/python3.4
Also creating executable in myenv/bin/python
Installing setuptools, pip...done.

创建python2 env。我需要这样做:

$ mkvirtualenv myenv --python /usr/local/bin/python
Running virtualenv with interpreter /usr/local/bin/python
New python executable in myenv/bin/python2.7
Also creating executable in myenv/bin/python
Installing setuptools, pip...done.

答案 2 :(得分:1)

根据我们的评论交换,你只在python 3上安装了virtualenvwrapper。你还需要在python2上安装它。为此:

curl -O https://bootstrap.pypa.io/get-pip.py
python2.7 ./get-pip.py --user
~/.local/bin/pip install virtualenvwrapper

我自己的设置恰恰相反 - 我使用python2进行工作,所以在〜/ local中为3.x安装virtualenv - 希望有所帮助。

答案 3 :(得分:0)

这解决了我的问题

假设您已经为python2添加了别名(mac中python的默认版本)

~/.bash_profile上添加这些内容

export WORKON_HOME=~/.virtualenvs
VIRTUALENVWRAPPER_PYTHON='/usr/local/bin/python3'
source /usr/local/bin/virtualenvwrapper.sh

答案 4 :(得分:-1)

只需将VIRTUALENVWRAPPER_PYTHON环境变量修改为此:

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3

然后通过键入

运行它

source ~/.bash_profile