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

use*_*754 48 python macos virtualenv virtualenvwrapper

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

我做的事情:

  • 冉: 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
    
    Run Code Online (Sandbox Code Playgroud)
  • 运行mkvirtualenv test结果:

    New python executable in trunk/bin/python
    Installing setuptools, pip...done.
    /usr/bin/python: No module named virtualenvwrapper
    
    Run Code Online (Sandbox Code Playgroud)
  • 手动检查'/ usr/local/bin'表示virtualenvwrapper.sh存在

  • 与我看到的其他一些问题不同,当我开始一个新的终端窗口时,我没有得到关于virtualenvwrapper的消息
  • 运行'which python'会导致: /usr/bin/python

我尝试过的:

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

任何帮助实现这项工作将非常感激.

小智 88

通过编辑我的〜/ .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
Run Code Online (Sandbox Code Playgroud)

保存,关闭.

然后:

$ source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

和:

$ mkvirtualenv test
Run Code Online (Sandbox Code Playgroud)

  • 在MacOS上`/ ​​usr/local/bin/python`是`brew`安装的那个.`/ usr/bin/python`是系统中的一个.使用`brew`和`virtualenvwrapper`更容易使用python,因此`export VIRTUALENVWRAPPER_PYTHON =/usr/local/bin/python`是这里的重要部分.如果您愿意,也可以使用`brew`安装`python3`并使用`/ usr/local/bin/python3`. (12认同)

cly*_*tis 37

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

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

打开终端并输入

$ pip --version
Run Code Online (Sandbox Code Playgroud)

来自/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**
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,此变量指向python2.7,您可能已在不同的python站点包中安装了virtualenv.

因此,要解决此问题,只需在bashrc中添加以下行

VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.5
Run Code Online (Sandbox Code Playgroud)

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

然后打开一个新的shell会话并再次尝试mkvirtualenv.这次它应该工作.


wul*_*pro 14

如果你看看virtualenvwrapper.sh脚本,你会发现这些行:

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

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

我这样解决了这个问题:

echo "export VIRTUALENVWRAPPER_PYTHON=$(which python3.6)" >> ~/.zshrc
Run Code Online (Sandbox Code Playgroud)

这是所有记录在官方网站上这里.


ase*_*sed 6

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