use*_*532 12 python virtualenv virtualenvwrapper osx-yosemite
我最近干净安装了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
Run Code Online (Sandbox Code Playgroud)
以下是我的.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
Run Code Online (Sandbox Code Playgroud)
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.
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚出了什么问题.当我在终端回应VIRTUALENVWRAPPER_PYTHON时.它返回正确的路径.事实上,我的所有路径都是正确的.他们都指向自制程序目录.
我怎样才能让它发挥作用?
小智 21
自问这个问题以来已经有一段时间了,但遇到同样的问题,我想添加我的解决方案以防万一有人可能会发现它有用:
由于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路径) .
根据我们的评论交换,你只在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 - 希望有所帮助.
非常感谢你.你的答案指向了正确的方向.
我通过卸载所有的东西virtualenv解决了这个问题.
pip uninstall virtualenv virtualenvwrapper
Run Code Online (Sandbox Code Playgroud)
然后我用pip2.7再次安装了所有内容.
pip2.7 install virtualenv virtualenvwrapper
Run Code Online (Sandbox Code Playgroud)
现在终端没有抱怨我在源virtualwrapper.sh时找不到模块
. /usr/local/bin/virtualenvwrapper.sh
Run Code Online (Sandbox Code Playgroud)
但是,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.
Run Code Online (Sandbox Code Playgroud)
创建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.
Run Code Online (Sandbox Code Playgroud)
根据我们的评论交流,您仅在 python 3 上安装了 virtualenvwrapper。您还需要在 python2 上安装它。为此:
curl -O https://bootstrap.pypa.io/get-pip.py
python2.7 ./get-pip.py --user
~/.local/bin/pip install virtualenvwrapper
Run Code Online (Sandbox Code Playgroud)
我自己的设置是相反的——我使用 python2 工作,所以在 ~/local 中安装 3.x 的 virtualenv——希望有帮助。