我正在阅读这篇关于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.
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
是否设置正确,唯一的问题是我不知道这些东西是什么意思,所以我的问题是:
- virtualenvwrapper已经为
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
“安装”了,这意味着什么?
1.在这种情况下,正确设置的PATH
是什么?
3条答案
按热度按时间c9qzyr3d1#
不完全确定你需要什么,但也许这会有帮助。它有点冗长,但希望能回答你的问题:
这里发生了很多事情。
首先,/usr/local/bin/virtualenvwrapper.sh是一个shell脚本,如果您阅读该脚本,您将看到以下代码:
这意味着virtualenvwrapper.sh脚本使用名为VIRTUALENVWRAPPER_PYTHON的环境变量来确定python安装。
第二,可以在一个系统上安装多个版本的Python(我目前有3:2.7、3.5和3.6)。无论如何,对于Linux系统,
符号化地链接到其中一个版本。这是它在我的Linux系统上的样子:
因此,遵循符号链接链,当我运行
我运行的是3.6版。我可以随意更改这些链接,使其指向2.7版、3.5版或我可能安装的任何其他版本。
这一切意味着:除非您将VIRTUALENVWRAPPER_PYTHON设置为特定的python安装,否则/usr/local/bin/virtualenvwrapper.sh将默认为/usr/bin/python,以确定您正在运行的默认python版本。
在我的例子中,在我的.bashrc文件中
这意味着virtualenvwrapper将使用python 3. 6,因为我告诉它使用那个特定的版本。
在您的情况下,脚本失败是因为没有为/usr/bin/python指向的python版本安装virtualenvwrapper。要确定您的python版本,只需运行:
然后为该版本安装VirtualEnvwrapper。
希望这能帮上忙。
eeq64g8w2#
您只需要将这一行添加到~/.zshrc或.bash_profile:
ukdjmx9f3#
因为我的Debian 11没有python 2.7,我只是:
sudo ln -s /usr/bin/python3 /usr/bin/python
未观察到副作用