安装了 virtualenv 和 virtualenvwrapper:Python 说没有名为 virtualenvwrapper 的模块

Posted

技术标签:

【中文标题】安装了 virtualenv 和 virtualenvwrapper:Python 说没有名为 virtualenvwrapper 的模块【英文标题】:Installed virtualenv and virtualenvwrapper: Python says no module named virtualenvwrapper 【发布时间】:2014-07-22 17:46:03 【问题描述】:

关于类似问题的许多其他线程,但我找不到与我完全相同的情况。所以,这里是:

我做过的事情:

跑:sudo easy_install pip 跑:sudo pip install virtualenv 跑:sudo pip install virtualenvwrapper

当前状态:

.bash_profile

export PATH=/usr/local/bin:$PATH
export PIP_DOWNLOAD_CACHE=$HOME/.pip/cache
export WORKON_HOME=$HOME/.virtualenvs
export PIP_VIRTUALENV_BASE=$WORKON_HOME
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python

运行 mkvirtualenv test 会导致:

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

手动检查“/usr/local/bin”显示 virtualenvwrapper.sh 存在

与我看到的其他一些问题不同,当我启动一个新的终端窗口时,我没有收到关于 virtualenvwrapper 的消息 运行 'which python' 结果:/usr/bin/python

我的尝试:

检查我的路径以确保它看起来像它应该的那样 重新安装 pip,然后使用重新安装的 pip 重新安装 virtualenv 和 virtualenvwrapper

非常感谢任何帮助完成这项工作。

【问题讨论】:

您的默认 Python 版本是什么? Pip 将安装到当前默认的任何 Python 版本(2.7、3.3)。如果你为 Python 2.7 安装一个包,你就不能在 Python 3.3 中使用它。仔细检查 /usr/bin/python 目录是否是您的默认 Python 版本所在的位置。 我的印象是'which python'做了那个,它返回了/usr/bin/python。这不正确吗? 【参考方案1】:

在遇到您在此处描述的相同问题后,通过编辑我的 ~/.bash_profile 并添加以下内容,我已经设法解决了这个问题:

export WORKON_HOME=$HOME/code/.virtualenvs
export PROJECT_HOME=$HOME/code
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'

source /usr/local/bin/virtualenvwrapper.sh

保存,关闭。

然后:

$ source ~/.bash_profile

和:

$ mkvirtualenv test

【讨论】:

MacOS 上的/usr/local/bin/pythonbrew 安装的。 /usr/bin/python 是来自系统的那个。从brewvirtualenvwrapper 使用python 更容易,所以export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python 是这里的重要部分。 ? 你也可以安装python3brew 并使用/usr/local/bin/python3 代替如果你喜欢?。 @GabLeRoux 感谢评论中的压缩答案。【参考方案2】:

尝试卸载您的virtualenvvirtualenvwrapper 并在2.7 版中使用pip 重新安装(检查您是否为其他版本符号链接您的pip 或为其分配别名)(我认为)。

我遇到了同样的错误,我只是这样做并解决了我的问题。

我使用的是 Ubuntu 机器。

希望对你有所帮助。

【讨论】:

【参考方案3】:

在我的例子中,将这一行添加到我的 .zshrc 文件中就可以了,

export VIRTUALENVWRAPPER_PYTHON=/usr/local/Cellar/python/2.7.13/bin/python2.7

记得 source ~/.zshrc 来更新你当前终端的变化。

【讨论】:

同样的问题,不明白为什么,只是厌倦了浪费我的时间。使用 /usr/local/Cellar/python/2.7.14_2/bin/python2.7 成功了,谢谢 在我的情况下,问题是它使用了没有安装 virtualenvwrapper 的 python2。像这样编辑 virtualenvwrapper.sh 并更改路径:VIRTUALENVWRAPPER_PYTHON="$(command \which python3)"【参考方案4】:

尝试使用pip2 install virtualenv virtualenvwrapper 安装 virtualenv 和 virtualenvwrapper。似乎 pip install virtualenv 它是 python 3 的包装器,因为它是默认的

【讨论】:

我使用了这个解决方案并解决了我的问题,而我没有弄乱~/.bash_profile【参考方案5】:

我在 ubuntu 上设置 virtualenvwrapper 时遇到了同样的问题。

我已经使用 pip 安装了 virtualenv、virtualenvwrapper,它们将这些模块安装在 python3.5 的站点包中。我是怎么发现的?

打开终端并输入

$ pip --version

来自 /home/clyton/.virtualenvs/test1/lib/python3.5/site-packages (python 3.5) 的 pip 9.0.1

然后我检查了变量VIRTUALENVWRAPPER_PYTHON,其值为 /usr/bin/python。 在你的终端上输入

$ ls -l $VIRTUALENVWRAPPER_PYTHON

lrwxrwxrwx 1 root root 9 Dec 10  2015 **/usr/bin/python -> python2.7**

如您所见,此变量指向 python2.7,您可能已将 virtualenv 安装在不同的 python 站点包中。

所以要解决这个问题,只需在你的 bashrc 中添加以下行

VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.5

注意: 将上述值设置为安装 virtualenv 的 python 版本。就我而言,它是 python3.5,所以我设置了该值。如何找出用于安装 virtualenv 的 python 版本?再次在终端中输入pip --version

然后打开一个新的 shell 会话并再次尝试 mkvirtualenv。这次应该可以了。

【讨论】:

【参考方案6】:

如果您查看 virtualenvwrapper.sh 脚本,您会发现以下几行:

# Locate the global Python where virtualenvwrapper is installed.
if [ "$VIRTUALENVWRAPPER_PYTHON" = "" ] 
then
    VIRTUALENVWRAPPER_PYTHON="$(command \which python)"
fi

如果您没有为您的 python 版本手动导出 VIRTUALENVWRAPPER,它将假定您没有安装 virtualenvwrapper 包的系统默认值。

我是这样解决的:

echo "export VIRTUALENVWRAPPER_PYTHON=$(which python3.6)" >> ~/.zshrc

这一切都记录在官网here。

【讨论】:

【参考方案7】:

最近(2017 年夏季)更新 Homebrew 和 python 后出现此错误。我的问题是 Homebrew 不再覆盖系统 python 并且我没有为系统 python 安装 virtualenvvirtualenvwrapper

在我的情况下,解决方案是将以下内容添加到~/.bash_profile(或~/.zshrc):

export PATH="$(brew --prefix)/opt/python/libexec/bin:$PATH"

这使得python 指向python 的brew 版本,也给了我pip。此版本的python 安装了virtualenvvirtualenvwrapper,因此不再出现错误。有关更多信息,请参阅 brew info python 和 https://github.com/Homebrew/homebrew-core/issues/15746 下的注意事项部分

【讨论】:

【参考方案8】:

我不知道它是否与任何人有关,但在 virtualenv 处于活动状态时编辑 ~/.zshrc 时出现此错误。所以我不得不deactivate 然后rmvirtualenv env_name 来消除错误。然后我重新创建了环境:mkvirtaulenv env_nameworkon env_name,这次我没有出错。

希望它可以帮助某人。

【讨论】:

【参考方案9】:

我意识到这个线程已经很老了,但是我在试图找到解决这个问题的方法时被卡住了(使用pip3,但你可以根据需要交换pip)。 我最终使用了我在另一篇帖子here 中找到的解决方案的修改版本。 将以下内容添加到您的.zshrc/.bashrc

source /usr/local/bin/virtualenvwrapper.sh
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3

我必须在上面添加local,但猜测您是否需要这样做取决于您的 安装。我意识到我引用了错误的位置,因为 我收到了这个错误:zsh: no such file or directory: /usr/bin/python3 所以我只是做了which python3 看看它在哪里。

确保您卸载所有现有版本的virtualenvvirtualenvwrapper,因为您不能简单地将现有版本安装到计算机上的新位置,您必须删除旧版本,然后在新位置。

要安装:sudo /usr/local/bin/pip3 install virtualenv virtualenvwrapper

并且,根据this 的帖子,您应该能够使用您的python3 版本使用以下命令创建一个虚拟环境:

mkvirtualenv --python=`which python3` nameOfEnvironment

【讨论】:

【参考方案10】:

在 Ubuntu 20.xx 中,只能通过指定 python 可执行路径来创建虚拟环境。

$ which python3
/usr/bin/python3
$ mkvirtualenv --python=/usr/bin/python <name_of_your_virtual_env>

【讨论】:

以上是关于安装了 virtualenv 和 virtualenvwrapper:Python 说没有名为 virtualenvwrapper 的模块的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu virtualenv python 虚拟环境的安装和配置

Linux环境下虚拟环境virtualenv安装和使用

如何检查安装的 Virtual Env 版本

Linux 配置和使用虚拟环境 virtualenv

pyenv+virtual 笔记

创建python虚拟环境virtualenv错误怎么解决?