更新后 python 和 virtualenvwrapper 的问题:没有名为 virtualenvwrapper 的模块

problems with python and virtualenvwrapper after updating: No module named virtualenvwrapper

I 运行 python 2.7.6 with virtualenv, virtualenvwrapper 在 ubuntu 14.04 下。 现在我已经从源代码安装了 python 2.7.9。新的 python 解释器现在位于 /usr/local/bin 下,但旧的解释器似乎也位于 /usr/bin.

如果我 运行 python shell 它显示 python2.7.9。但是如果我使用 mkvirtualenv venv 我会收到以下消息。

New python executable in venv/bin/python
Installing setuptools, pip...done.
Blockquote /usr/local/bin/python: No module named virtualenvwrapper

.bashrc(使用 python 2.7.6 解释器的工作配置)

# virtualenv-wrappper path
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh

新增.bashrc(配置失败)

# virtualenv-wrappper 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

使用新的 .baschrc 我输入 source .bashrc 并得到以下输出。

/usr/local/bin/python: 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.

我也试过了which -a python:

输出:

/usr/local/bin/python
/usr/bin/python

我想将 python 2.7.9 与 virtualenv 和 virtualenvwrapper 一起使用。那么我必须做些什么才能得到这个 运行ning ?

您需要通过指定要使用的正确 pip 版本的路径在 python 2.7.9 下安装它们

/usr/local/bin/pip install virtualenv virtualenvwrapper

否则,当 运行 pip install 时,系统将使用默认值(即位于 /usr/bin/pip 的那个)

如果您像我一样将 virtualenvwrapper 修改为指向 python3,请在 .bashrc 文件中添加以下行:

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

确保它位于 之前 以下行(如果有的话):

source /usr/local/bin/virtualenvwrapper.sh

然后,确保安装 virtualenvvirtualenvwrapper 使用:

sudo /usr/local/bin/pip3 install virtualenv virtualenvwrapper

source /usr/local/bin/virtualenvwrapper_lazy.sh


当使用 pyenv 时:

export PYENV_ROOT="${HOME}/.pyenv"

if [ -d "${PYENV_ROOT}" ]; then
    export PATH="${PYENV_ROOT}/bin:${PATH}"
    eval "$(pyenv init -)"
fi
export PATH

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_SCRIPT=/usr/local/bin/virtualenvwrapper.sh
#important
source /usr/local/bin/virtualenvwrapper_lazy.sh