当前位置:  开发笔记 > 编程语言 > 正文

导致ImportError的原因:在OS X上升级Python后没有名为pkg_resources的模块?

如何解决《导致ImportError的原因:在OSX上升级Python后没有名为pkg_resources的模块?》经验,为你挑选了3个好方法。

我刚刚在Mac上将Python更新为2.6.4.我从dmg包安装.

二进制文件似乎没有正确设置我的Python路径,所以我添加'/usr/local/lib/python2.6/site-packages'.bash_profile

>>> pprint.pprint(sys.path)  
['',
'/Users/Bryan/work/django-trunk', 
'/usr/local/lib/python2.6/site-packages',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages']

显然,这不是所有必需的路径,因为我无法运行iPython.

$ ipython  
Traceback (most recent call last):  
  File "/usr/local/bin/ipython", line 5, in   
  from pkg_resources import load_entry_point  
ImportError: No module named `pkg_resources`

我已完成谷歌搜索,我无法弄清楚如何安装pkg_resources或确保它在路上.

我需要做些什么来解决这个问题?



1> cwc..:

我遇到了同样的事情ImportError.不知何故setuptools,我的Python环境中已经删除了包.

要解决此问题,请运行以下设置脚本setuptools:

curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python

如果您有任何版本distribute或任何setuptools低于0.6的版本,则必须先将其卸载.*

有关详细信息,请参阅安装说明


*如果您已经有效distribute,将其升级到"兼容包装"可以让您setuptools更轻松.但如果事情已经破裂,不要试试.


这是正确的方法.没有pkg_resources,`easy_install`也可能不起作用(所以`easy_install`和`pip`将无法安装setuptools).

2> Ned Deily..:

[UPDATE] TL; DR pkg_resources由Distribute或setuptools提供.

[更新2]截至2013 PYCON公布,Distribute以及setuptools项目重新合并. Distribute现已弃用,您应该只使用新的当前值setuptools.试试这个:

curl -O https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
python ez_setup.py

或者,更好的是,使用电流pip作为高级接口,并将setuptools在封面下使用.

[对于OP特定问题的更长答案]:

你没有在你的问题中说,但我假设你从Apple提供的Python(10.5上的2.5或2.6.6的2.6.6)升级或者你从python.org Python 2.5升级.在任何一种情况下,重要的一点是每个Python实例都有自己的库,包括它自己的站点包库,这是安装其他包的地方.(/usr/local/lib顺便说一下,它们都没有默认使用.)这意味着你需要为新的python 2.6安装所需的其他软件包.最简单的方法是首先确保新的python2.6首先出现在你的搜索中$PATH(也就是说,键入python2.6按预期调用它); python2.6安装程序应该修改你.bash_profile的框架bin目录放在前面$PATH.然后按照那里的说明easy_install使用setuptools进行安装.该pkg_resources步骤也会自动安装该模块.

然后使用新安装的easy_install(或pip)版本进行安装ipython.

easy_install ipython

要么

pip install ipython

它应该自动安装到该site-packagespython实例的正确位置,你应该好好去.



3> vutran..:

如果在mac os 10.7上升级python并且pkg_resources不起作用,解决这个问题的最简单方法就是重新安装setuptools,就像上面提到的Ned一样.

sudo pip install setuptools --upgrade
or sudo easy_install install setuptools --upgrade

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有