Python Virtualenv - 没有名为virtualenvwrapper.hook_loader的模块

Tho*_*mel 75 python virtualenv virtualenvwrapper

我正在运行Mac OS 10.6.8.并希望除了python 2.6还安装python 2.7并在新的virtualenv中使用python 2.7.我执行了以下步骤:

我下载了python 2.7并安装了它:

http://www.python.org/ftp/python/2.7.3/python-2.7.3-macosx10.6.dmg
Run Code Online (Sandbox Code Playgroud)

然后我运行命令使用python2.7设置一个新的virtualenv:

mkvirtualenv --python=python2.7 mynewenv
Run Code Online (Sandbox Code Playgroud)

我的.bash_profile如下所示:

# needed for virtualenvwrapper
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


# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
Run Code Online (Sandbox Code Playgroud)

现在,当我打开控制台时,我收到以下错误消息.

ImportError: No module named virtualenvwrapper.hook_loader
virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenv has been installed for VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python and that PATH is set properly.
Run Code Online (Sandbox Code Playgroud)

我还在另一篇文章中发现我应该升级virtualenvwrapper.这没有用.

sudo pip install virtualenvwrapper --upgrade
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

Tho*_*mel 52

该问题已按照以下步骤解决:

#switch the /usr/bin/python link to point to current python link
cd /usr/bin
sudo mv python python.bak
sudo ln -s /Library/Frameworks/Python.framework/Versions/Current/bin/python python
Run Code Online (Sandbox Code Playgroud)

重新排列导出命令,以便将它放在我的.bash_profile文件中的virtualenv命令之前:

PATH=/Library/Frameworks/Python.framework/Versions/2.7/bin:$PATH
export PATH

# needed for virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
Run Code Online (Sandbox Code Playgroud)

重新安装setuptools,易于安装和PIP.显然需要这样才能使它们与新的python版本一起正常工作:

sudo sh setuptools-0.6c11-py2.7.egg

sudo easy_install-2.7 pip

pip install virtualenv
Run Code Online (Sandbox Code Playgroud)

  • +1给@Mark评论.此外,对于brew用户:实际路径是`usr/local/Cellar/python/<PYTHON-VERSION>/bin /`. (4认同)
  • 在Mountain Lion上,我的诀窍是确保在源...行之前设置/ opt/local/bin的PATH.我不必乱用/ usr/bin中的OSX Python链接或其他任何东西.如果没有设置为$ HOME/.virtualenvs,WORKON_HOME现在也是默认的 (3认同)

reu*_*ano 22

此外,如果您有macport,请确保在PATH /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin之前/Library/Frameworks/Python.framework/Versions/2.7/bin和之前列出/usr/local/bin.然后在您中设置以下内容.profile:

export VIRTUALENVWRAPPER_PYTHON=`which python`
export VIRTUALENVWRAPPER_VIRTUALENV=`which virtualenv`
source `which virtualenvwrapper.sh`
Run Code Online (Sandbox Code Playgroud)

  • 我正在我的os python2上安装python3并设置`VIRTUALENVWRAPPER_PYTHON`解决了我的问题. (4认同)

Kal*_*ien 10

对于使用Ubuntu 18.04Python 3+ 的任何人,这对我有用

which python3 # outputs /usr/bin/python3 
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3  
source `which virtualenvwrapper.sh`  
Run Code Online (Sandbox Code Playgroud)


小智 7

在我的情况下,将此行添加到我的.zshrc文件中就可以了,

export VIRTUALENVWRAPPER_PYTHON=/usr/local/Cellar/python/2.7.13/bin/python2.7
Run Code Online (Sandbox Code Playgroud)

  • `导出 VIRTUALENVWRAPPER_PYTHON=/usr/local/Cellar/python/3.6.5/bin/python3.6` 以获得最新版本。 (3认同)