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

时间:2014-06-02 14:50:35

标签: python macos virtualenv virtualenvwrapper

关于类似问题的很多其他线索,但没有一个我能找到与我的情况完全相同的情况。所以,这里是:

我做过的事情:

  • Ran:sudo easy_install pip
  • Ran:sudo pip install virtualenv
  • Ran: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的消息
  • 运行'哪个python'会导致:/usr/bin/python

我尝试了什么:

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

非常感谢任何帮助实现这项工作。

10 个答案:

答案 0 :(得分:79)

通过编辑我的〜/ .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

答案 1 :(得分:30)

我在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,您可能已在不同的python站点包中安装了virtualenv。

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

即可
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.5

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

然后打开一个新的shell会话并再次尝试mkvirtualenv。这次它应该有效。

答案 2 :(得分:13)

如果你看一下 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上。

答案 3 :(得分:6)

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

答案 4 :(得分:2)

尝试卸载virtualenvvirtualenvwrapper,然后使用pip重新安装它(检查是否符号链接或为其他版本分配了别名)(2.7版)想)。

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

我使用的是Ubuntu机器。

我希望这有帮助。

答案 5 :(得分:2)

最近(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 pythonhttps://github.com/Homebrew/homebrew-core/issues/15746下的警告部分

答案 6 :(得分:1)

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

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

记得使用〜/ .zshrc来更新当前终端的更改。

答案 7 :(得分:0)

我不知道它是否与任何人有关,但在virtualenv处于活动状态时编辑~/.zshrc时出现此错误。因此,我必须先deactivate然后rmvirtualenv env_name才能删除错误。然后我重新创建了环境:mkvirtaulenv env_nameworkon env_name,这次我没有遇到任何错误。

希望它可以帮助某人。

答案 8 :(得分:0)

我意识到这个线程已经很老了,但是我在尝试找到解决此问题的方法时遇到了麻烦(使用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=其中python3 nameOfEnvironment

答案 9 :(得分:0)

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

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