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

问题描述 投票:12回答:5

我最近干净安装了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时。它返回正确的路径。事实上,我的所有路径都是正确的。他们都指向自制程序目录。

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

python virtualenv osx-yosemite virtualenvwrapper
5个回答
20
投票

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

由于virtualenvwrapper是使用Python3安装的,因此可以预见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路径) 。


9
投票

根据我们的评论交换,你只在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进行工作,所以在~x中安装virtualenv for~x / 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.

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 - 希望有所帮助。


0
投票

这解决了我的问题

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

~/.bash_profile上添加这些

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

-1
投票

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

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3

然后键入来运行它

source ~/.bash_profile

© www.soinside.com 2019 - 2024. All rights reserved.