如何检查virtualenvwrapper是否已安装用于virtualenvwrapper_PYTHON=/usr/bin/PYTHON等

如何检查virtualenvwrapper是否已安装用于virtualenvwrapper_PYTHON=/usr/bin/PYTHON等,python,unix,Python,Unix,我遵循这本关于virtualenv for Python的指南,遇到了一个小问题: Sahands-MBP:empty sahandzarrinkoub$ source /usr/local/bin/virtualenvwrapper.sh /usr/bin/python: No module named virtualenvwrapper virtualenvwrapper.sh: There was a problem running the initialization hooks. I

我遵循这本关于virtualenv for Python的指南,遇到了一个小问题:

Sahands-MBP:empty sahandzarrinkoub$ source /usr/local/bin/virtualenvwrapper.sh
/usr/bin/python: No module named virtualenvwrapper
virtualenvwrapper.sh: There was a problem running the initialization hooks.

If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is
set properly.
打印出来的内容很有帮助。它说我需要检查是否已为
virtualenvwrapper\u PYTHON=/usr/bin/PYTHON
安装了virtualenvwrapper,并且
PATH
设置正确。唯一的问题是,我不知道这些东西是什么意思。因此,我的问题是:

  • virtualenvwrapper“安装于”
    virtualenvwrapper\u PYTHON=/usr/bin/PYTHON
    意味着什么
  • 在这种情况下,正确设置的路径是什么

  • 不确定你需要什么,但也许这会有帮助。这有点冗长,但希望能回答您的问题:

    这里发生了很多事情

    首先,/usr/local/bin/virtualenvwrapper.sh是一个shell脚本。如果阅读脚本,您将看到以下代码:

    # Locate the global Python where virtualenvwrapper is installed.
    if [ "$VIRTUALENVWRAPPER_PYTHON" = "" ] 
    then
        VIRTUALENVWRAPPER_PYTHON="$(command \which python)"
    fi
    
    这意味着virtualenvwrapper.sh脚本使用名为virtualenvwrapper_PYTHON的环境变量来确定PYTHON安装。这很重要,因为:

    其次,可以在一个系统上安装多个版本的python。(我现在有3个:2.7、3.5和3.6)。不管怎样,对于Linux系统

    /usr/bin/python
    
    与其中一个版本有象征性的联系。这是它在我的Linux系统上的外观:

    lenovo:davidj ~ >  ls -l /usr/bin/python
    lrwxrwxrwx 1 root root 24 Apr 28 23:36 /usr/bin/python -> 
    /etc/alternatives/python
     lenovo:davidj ~ >  ls -l /etc/alternatives/python
    lrwxrwxrwx 1 root root 18 Aug 31 14:56 /etc/alternatives/python -> 
    /usr/bin/python3.6
    
    因此,当我运行时,遵循符号链接链

    /usr/bin/python
    
    我正在运行3.6版。我可以随意更改这些链接,以指向2.7、3.5或我可能安装的任何其他版本

    所有这些都意味着:除非您将VirtualEnvRapper_PYTHON设置为特定的PYTHON安装,/usr/local/bin/virtualEnvRapper.sh将默认为/usr/bin/PYTHON,以确定您正在运行的默认PYTHON版本

    在我的例子中,在我的.bashrc文件中

    export VIRTUALENVWRAPPER_PYTHON='/usr/bin/python3.6'
    
    这意味着VirtualEnvrapper将使用python 3.6,因为我告诉它使用该特定版本

    在您的例子中,脚本失败是因为没有为/usr/bin/python所指向的python版本安装VirtualEnvrapper。要确定python的版本,只需运行:

    python -V
    
    然后为该版本安装VirtualNVRapper


    我希望这会有所帮助。

    您只需将此行添加到~/.zshrc或.bash_配置文件:

    export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2
    

    谢谢。我通过将我的VIRTUALENVWRAPPER_PYTHON变量指向安装了VIRTUALENVWRAPPER的PYTHON版本(python3)解决了我的问题。因此,我将这一行添加到我的.bash_配置文件中:
    export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3