如何检查virtualenvwrapper是否已安装用于virtualenvwrapper_PYTHON=/usr/bin/PYTHON等
我遵循这本关于virtualenv for 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
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\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