我最近干净安装了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时。它返回正确的路径。事实上,我的所有路径都是正确的。他们都指向自制程序目录。
我怎样才能让它发挥作用?
答案 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