Bla*_*man 26 python virtualenv osx-lion
我有一段时间没有触及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.
Run Code Online (Sandbox Code Playgroud)
有关如何解决此问题的任何提示?
试:
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
Run Code Online (Sandbox Code Playgroud)
Mat*_* B. 41
我是一个完整的Python/Virtualenv新手.但是,我遇到了完全相同的问题,并找到了适合我的解决方案.我相信这将根据您最初设置Python和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.6sudo easy_install pip.好像/Library/Python/2.*/site-packages现在需要管理员权限.我不记得10.6中的情况(或者至少我的bash历史并未反映出这一点).sudo pip install virtualenvsudo pip install virtualenvwrapperpip freeze -l此虚拟环境中的本地软件包).我认为.hum*_*um3 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
Run Code Online (Sandbox Code Playgroud)
当我pip freeze在常规python上做到2.7时,它显示正确安装的软件包但仍然抱怨.即使它抱怨virtualenv确实有效.
我后来通过确保〜/ .virtualenvs中的所有文件都属于用户和组而不是将它们归为root来删除错误.像这样:
bash
cd ~
sudo chown -R ubuntu:ubuntu .virtualenvs
您是否virtualenv为正在使用的Python 安装了?如果您使用的是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的东西,easy_install-2.7如果要将其与2.7一起使用,则需要使用python2.7(或)安装它.
小智 5
Blankman,
我遇到了同样的错误,但事后我的问题很简单,我在下面分享我的工作.因人而异.
我使用(home)brew安装python 2.7.2并使用它作为我的默认值.它通过/ usr/local/bin/python引用.Mac OS X Lion附带的股票python安装在/ usr/bin/python中引用.
-
virtualwrapper.sh启动脚本检查了环境变量VIRTUALENVWRAPPER_PYTHON,如果为空,则用'/ usr/local/bin/python'填充它.这就是我的错误原因.将它初始化为'/ usr/local/bin/python'为我解决了问题.
HTH.
澄清.我使用brew安装了python 2.7.2并将其与virtualenv结合使用,以更好地管理我的开发环境.我试着尽可能地避开预装的设置.
| 归档时间: |
|
| 查看次数: |
31496 次 |
| 最近记录: |