是什么引起ImportError:在OS X上升级Python之后,没有名为pkg_resources的模块?


82

我刚刚在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 <module>  
  from pkg_resources import load_entry_point  
ImportError: No module named `pkg_resources`

我已经完成了Google搜索,但无法真正确定如何安装pkg_resources或确保它在路上。

我需要怎么做才能解决此问题?

Answers:


73

[更新] TL; DRpkg_resourcesDistributesetuptools提供

[更新2]正如在PyCon 2013上宣布的,Distributesetuptools项目已重新合并。 Distribute现在已弃用,您应该只使用new current 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或在10.6上为2.6.1)升级的,或者是从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使用安装按照此处的说明进行安装。该pkg_resources模块也被自动通过此步骤进行安装。

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

easy_install ipython

要么

pip install ipython

它应该会自动安装到该site-packagespython实例的正确位置,您应该一切顺利。


昨晚尝试安装setuptools时,我搞砸了。我忽略了通过运行.egg文件来完成安装,就好像它是外壳文件一样。$ sh setuptools-0.6c11-py2.6.egg我猜是在某处添加了新的Python路径。
BryanWheelock,2009年

注意:为我解决了此问题的实际答案如下-参见stackoverflow.com/a/10538341/293064
Jay Taylor

我已经对该旧答案进行了一些更新,以使其更明显地表明该解决方案是安装Distribute还是安装setuptools。具体步骤在链接中。OP的问题涉及其他项目。
Ned Deily

进一步编辑以反映distribute对新事物的弃用setuptools和提及pip
Ned Deily

1
得到python ez_setup.py File "ez_setup.py", line 1 <!DOCTYPE html> ^ SyntaxError: invalid syntax:(
hi15

76

我遇到了同样的情况ImportError。不知何故,该setuptools软件包已在我的Python环境中删除。

要解决此问题,请运行以下安装脚本setuptools

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

如果您有任何版本的distributesetuptools低于0.6的版本,则必须先将其卸载。*

有关更多详细信息,请参见安装说明


*如果您已经可以使用distribute,那么将其升级到将您切换到的“兼容包装器”setuptools会更容易。但是,如果事情已经坏了,请不要尝试。


3
这是正确的方法。如果没有pkg_resources,easy_install也可能无法正常工作(因此easy_installpip将无法安装setuptools)。
亚历克斯·丘吉尔

实际上,安装Distribute或setuptools是建议的答案。我对原始答案做了一些更新,使其更加明显。顺便说一句,从这样不安全的URL下载并安装某些内容而不先检查文件的内容有些危险。
Ned Deily

7

如果在Mac OS 10.7上升级python且pkg_resources无法正常工作,解决此问题的最简单方法就是重新安装setupedtools,如Ned所述。

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

3

在我的系统(OSX 10.6)上,该软件包位于

/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py

我希望这可以帮助您弄清楚它是否丢失或不在路上。


1

原因可能是因为IPython模块不在您的PYTHONPATH中。

如果您下载IPython然后执行python setup.py install

安装程序不会将模块IPython添加到您的python路径中。您可能需要手动将其添加到PYTHONPATH中。完成以下操作后,它应该可以工作:

导出PYTHONPATH = / pathtoIPython:$ PYTHONPATH

在您的.bashrc或.profile中添加此行以使其永久。


0

我意识到这与OSX不相关,但是在嵌入式系统(Beagle Bone Angstrom)上,我有完全相同的错误消息。安装以下ipk软件包即可解决该问题。

opkg install python-setuptools
opkg install python-pip

0

我在Ubuntu上遇到此错误,以下代码对我有用:

通过运行以下命令,删除了保管箱二进制文件并再次下载它们:

sudo rm -rf /var/lib/dropbox/.dropbox-dist
dropbox start -i

0

我在从事高速公路相关项目时遇到了同样的问题。

1)所以我以https://pypi.python.org/packages/source/s/setuptools/的形式下载setuptools.-0.9.8.tar.gz并将其解压缩。

2)然后我得到pkg_resources模块并将其复制到需要的文件夹中。**在我的情况下,该文件夹为C:\ Python27 \ Lib \ site-packages \ autobahn


0

就我而言,包裹python-pygments被遗漏了。您可以通过以下命令修复它:

sudo apt-get install python-pygments

如果有问题pandoc。您应该安装pandocpandoc-citeproc

sudo apt-get install pandoc pandoc-citeproc

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.