在 Arch linux 上,在系统范围内安装 virtualenvwrapper 后,通过sudo pip2 install virtualenvwrapper
并将其添加到我的用户的 .bash_profile 中,
export WORKON_HOME=/home/myuser/.virtualenvs
export PROJECT_HOME=/home/myuser/work
source /usr/bin/virtualenvwrapper.sh
每当我启动一个新的 shell 窗口时都会出现一个错误:-
which: no python in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/bin/core_perl)
-bash: : command not found
virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenv has been installed for VIRTUALENVWRAPPER_PYTHON= and that PATH is set properly.
这可以追溯到 virtualenvwrapper.sh 脚本中的第 50 行:-
47 # Locate the global Python where virtualenvwrapper is installed.
48 if [ "$VIRTUALENVWRAPPER_PYTHON" = "" ]
49 then
50 VIRTUALENVWRAPPER_PYTHON="$(\which python)"
51 fi
并且是与 Arch linux 使用 python2 安装 python 2.7 的约定冲突的结果。
如果我将第 50 行修改为which python2
,则一切正常,每当我启动新的 shell 时,我都不会看到错误消息。
解决此问题的适当方法是什么?我是否写了一个明确的检查当前操作系统是arch linux并引入一个if-else条件来使用virtualenvwrapper.sh中的哪个python2并将补丁发送给virtualenvwrapper作者?或者我可以在我的 Arch linux 机器中使用我的配置做些什么?