如何检查已经为VIRTUALENVWRAPPER_PYTHON = / usr / bin / python等安装了virtualenvwrapper

时间:2017-09-07 21:41:59

标签: python unix

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

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_PYTHON=/usr/bin/python安装了virtualenvwrapper并且PATH已正确设置。唯一的问题是,我不知道这些东西是什么意思。所以我的问题是:

  1. virtualenvwrapper已被安装为"意味着什么? VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
  2. 在这种情况下,正确设置PATH是什么?

2 个答案:

答案 0 :(得分:8)

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

这里有很多事情发生。

首先,/ 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或我可能安装的任何其他版本。

所有这一切意味着:除非你将VIRTUALENVWRAPPER_PYTHON设置为特定的python安装,否则/usr/local/bin/virtualenvwrapper.sh将默认为/ usr / bin / python来确定你运行的默认python版本。

就我而言,在我的.bashrc文件中我有

export VIRTUALENVWRAPPER_PYTHON='/usr/bin/python3.6'

这意味着virtualenvwrapper将使用python 3.6,因为我告诉它使用该特定版本。

在您的情况下,脚本失败,因为没有为/ usr / bin / python指向的那个版本的python安装virtualenvwrapper。要确定您的python版本,只需运行:

python -V

然后为该版本安装virtualenvwrapper。

我希望这会有所帮助。

答案 1 :(得分:0)

您只需将此行添加到〜/ .zshrc或.bash_profile:

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2