Skip to main content
 首页 » 编程设计

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

2025年05月04日26me-sa

我正在按照 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 是什么?

请您参考如下方法:

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

这里发生了很多事情。

首先,/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 

符号链接(symbolic link)到其中一个版本。这是它在我的系统 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 

所以,当我运行时,遵循符号链接(symbolic link)链

/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。

希望对您有所帮助。