我有一段时间没有触及python和virtualenv,我相信我用virtualenv和pip设置我的MBP,但是完全忘记了这些东西是如何工作的。
安装Lion之后,当我打开一个新的终端窗口时,我收到了这个错误:
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named virtualenvwrapper.hook_loader
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=/usr/bin/python and that PATH is set properly.
有关如何解决此问题的任何提示?
尝试:
easy_install eventlet
我明白了:
Traceback (most recent call last):
File "/usr/local/bin/easy_install", line 5, in <module>
from pkg_resources import load_entry_point
File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 2607, in <module>
parse_requirements(__requires__), Environment()
File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 565, in resolve
raise DistributionNotFound(req) # XXX put more info here
pkg_resources.DistributionNotFound: setuptools==0.6c11
答案 0 :(得分:41)
我是一个完整的Python / Virtualenv新手。但是,我遇到了完全相同的问题,并找到了适合我的解决方案。我相信这会有很大的不同,这取决于你最初设置Python&amp;的方式。 VIRTUALENV。
在我的情况下,Lion升级完全清除了/Library/Python/2.*/site-packages
的所有内容,但在/usr/local/bin
中留下了现在已损坏的可执行文件(链接到此文件夹的内容)。我相信这是神秘的“无模块”导入错误的根本原因。
查看我的.bash_history,我最初使用easy_install
来安装pip
,然后pip
来安装virtualenv
和virtualenvwrapper
。一旦我重复这些步骤,我就能够重新进入我的旧虚拟环境,其中仍包含我在10.6上安装的所有软件包。但请注意,默认情况下,Python 2.6附带10.6。如果您的软件包需要Python 2.6,则应首先将默认Python版本更改为2.6。
步骤一步:
.bash_profile
)。开始一个新的终端会议。defaults write com.apple.versioner.python Version 2.6
sudo easy_install pip
。似乎/Library/Python/2.*/site-packages
现在需要管理员权限。我不记得10.6中的情况(至少我的bash历史并没有反映出来)。sudo pip install virtualenv
sudo pip install virtualenvwrapper
pip freeze -l
以查看此虚拟环境中的本地软件包)。我想。答案 1 :(得分:22)
我在Ubuntu 14.04上安装python3.4的解决方案是将它添加到〜/ .bashrc文件中,以便它的尾部看起来像这样:
#Setup virtual envwrapper for python in case default doesn't work
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.4
export VIRTUALENVWRAPPER_PYTHON
# needed for virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/projects
source /usr/local/bin/virtualenvwrapper.sh
当我在常规python上做pip freeze
时,它显示了2.7正确安装包但仍抱怨。即使它抱怨virtualenv确实有效。
我后来删除了错误,确保〜/ .virtualenvs中的所有文件都属于用户和组,而不是一小部分属于root用户。像这样:
bash
cd ~
sudo chown -R ubuntu:ubuntu .virtualenvs
答案 2 :(得分:6)
您是否为正在使用的Python安装了virtualenv
?如果您使用Apple提供的默认系统Python 2.7,则不会预先安装virtualenv
软件包。使用/usr/bin/easy_install
进行安装。
更新:为了清楚起见,在Lion 10.7上,现在有一个Apple提供的Python 2.7,这是使用/usr/bin/python
时的默认版本。苹果继续以10.6 Snow Leopard的形式发售Python 2.6和2.5。您可以通过明确引用它来选择所需的版本,如/usr/bin/python2.7
,/usr/bin/python2.6
等,并且可以更改/usr/bin/python
使用的默认值;有关详细信息,请阅读Apple手册页(man python
)。但关键是,通常,Python包安装到特定版本。如果您安装了2.6的东西,如果要将其与2.7一起使用,则需要使用python2.7(或easy_install-2.7
)进行安装。
答案 3 :(得分:5)
Blankman,
我遇到了同样的错误,但事后我的问题很简单,我在下面分享我的工作。 YMMV。
我使用(home)brew安装python 2.7.2并使用它作为我的默认值。它通过/ usr / local / bin / python引用。 Mac OS X Lion附带的股票python安装在/ usr / bin / python中引用。
-
virtualwrapper.sh启动脚本检查了环境变量VIRTUALENVWRAPPER_PYTHON,如果为空,则用&#39; / usr / local / bin / python&#39;填充它。这就是我的错误原因。将其初始化为&#39; / usr / local / bin / python&#39;为我解决了这个问题。
HTH。
澄清。我使用brew安装了python 2.7.2并将其与virtualenv结合使用,以更好地管理我的开发环境。我试图尽可能地避开预装的设置。
答案 4 :(得分:2)
要解决第二个问题,您应该重新安装setuptools。
要修复第一个,只需用它安装virtualenvwrapper。
基本上,当你安装Lion时,你将不得不重新安装所有的python站点包。
答案 5 :(得分:1)
我不得不重新安装setup-tools(在这种情况下,Mountain Lion的Python 2.7蛋),然后我能够重新安装pip,然后是virtualenv。
答案 6 :(得分:1)
对于任何正在拔头发的人...我得到了同样的错误,但只有当我尝试scp(安全复制)到我的其他一个mac时。我花了一段时间才意识到该消息实际上与我登录的Mac有关。对于os x .bash_profile在登录时运行,我没有正确地从.bash_profile获取我的.bashrc以获取环境设置Ned概述。因此,请确保为您登录的机器设置了这些设置。
答案 7 :(得分:1)
是的,升级到marvericks之后,需要使用/ usr / bin / easy_install再次安装pip和virtualenv。
答案 8 :(得分:0)
升级到优胜美地后我收到了这个。要修复我必须运行:
sudo pip install --upgrade setuptools