不太确定您需要什么,但这也许会有所帮助。虽然有点啰嗦,但希望能回答你的问题:
这里发生了很多事情。
首先,/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 。
我希望这有帮助。