安装了 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/python
是brew
安装的。 /usr/bin/python
是来自系统的那个。从brew
和virtualenvwrapper
使用python 更容易,所以export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
是这里的重要部分。 ? 你也可以安装python3
和brew
并使用/usr/local/bin/python3
代替如果你喜欢?。
@GabLeRoux 感谢评论中的压缩答案。【参考方案2】:
尝试卸载您的virtualenv
和virtualenvwrapper
并在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 安装 virtualenv
和 virtualenvwrapper
。
在我的情况下,解决方案是将以下内容添加到~/.bash_profile
(或~/.zshrc
):
export PATH="$(brew --prefix)/opt/python/libexec/bin:$PATH"
这使得python
指向python 的brew 版本,也给了我pip
。此版本的python
安装了virtualenv
和virtualenvwrapper
,因此不再出现错误。有关更多信息,请参阅 brew info python
和 https://github.com/Homebrew/homebrew-core/issues/15746 下的注意事项部分
【讨论】:
【参考方案8】:我不知道它是否与任何人有关,但在 virtualenv 处于活动状态时编辑 ~/.zshrc
时出现此错误。所以我不得不deactivate
然后rmvirtualenv env_name
来消除错误。然后我重新创建了环境:mkvirtaulenv env_name
和 workon 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
看看它在哪里。
确保您卸载所有现有版本的virtualenv
和virtualenvwrapper
,因为您不能简单地将现有版本安装到计算机上的新位置,您必须删除旧版本,然后在新位置。
要安装: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 的模块的主要内容,如果未能解决你的问题,请参考以下文章