【问题标题】:problems with python and virtualenvwrapper after updating: No module named virtualenvwrapper更新后python和virtualenvwrapper的问题:没有名为virtualenvwrapper的模块
【发布时间】:2015-06-11 17:26:24
【问题描述】:

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

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

venv/bin/python 中的新 python 可执行文件
安装 setuptools,pip...完成。
Blockquote /usr/local/bin/python: 没有名为 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: 没有名为 virtualenvwrapper 的模块 virtualenvwrapper.sh:运行初始化挂钩时出现问题。

如果 Python 无法导入模块 virtualenvwrapper.hook_loader, 检查是否已安装 virtualenvwrapper VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python 并且 PATH 是 正确设置。

我也试过which -a python:

输出:

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

我想将 python 2.7.9 与 virtualenv 和 virtualenvwrapper 一起使用。那么我必须做些什么才能让它运行呢?

【问题讨论】:

  • 你在python 2.7.9下安装virtualenvwrapper了吗?
  • 是的,我已经在 python2.7.9 下重新安装了 virtualenv 和 virtualenvwrapper。给我同样的结果。
  • 如果您尝试从 python (2.7.9) shell 导入 virtualenvwrapper,您会收到任何错误吗?如果您尝试使用 -p path/to/python/interpreter 创建 virtualenv 会怎样?
  • @Railslide:尝试从 python shell 导入它,正如你所说的给我一个错误。 ImportError:没有名为 virtualenvwrapper 的模块。与 virtualenv 相同。
  • 你是如何安装 virtualenv 和 virtualenvwrapper 的?

标签: python virtualenv virtualenvwrapper


【解决方案1】:

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

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

确保将其放在以下行之前(如果有的话):

source /usr/local/bin/virtualenvwrapper.sh

然后,确保您安装 virtualenvvirtualenvwrapper 使用:

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

【讨论】:

  • 有人应该让这件事变得更简单。只需一个命令,您就拥有了一切。
  • @KibeCollins 是的,你是对的。它〜应该〜默认使用Python3,但是NOOooooo ..
  • 这可能也有用:medium.com/@gitudaniel/…
  • 谢谢你。在所有其他帖子中,这是真正的修复。
【解决方案2】:

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

/usr/local/bin/pip install virtualenv virtualenvwrapper

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

【讨论】:

    【解决方案3】:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-07
      • 2015-05-22
      • 2019-06-19
      • 2013-11-04
      • 2014-02-17
      • 2014-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多