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

我刚在我的Mac上将Python更新到2.6.4。 我从dmg包安装。

该二进制似乎没有正确设置我的Pythonpath,所以我在.bash_profile添加了'/usr/local/lib/python2.6/site-packages'

 >>> 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'] 

显然这不是所有必需的path,因为我不能运行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` 

我已经完成了谷歌search,我真的不知道如何安装pkg_resources或确保它在path上。

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

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

[更新2]正如PyCon 2013所宣布的, Distributesetuptools项目已经重新合并。 Distribute现在已经被弃用,你应该使用新的当前setuptools 。 尝试这个:

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

或者,更好的是,使用当前pip作为高级界面,并使用下面的setuptools

[OP的具体问题的更长答案]:

你不是说在你的问题,但我假设你从苹果提供的Python升级(10.5上的2.5或2.6上的2.5.6)或从python.org Python 2.5升级。 在任何这些情况下,重要的一点是每个Python实例都有自己的库,包括它自己的站点包库,这是安装附加包的地方。 (顺便说一下,其中没有一个默认使用/usr/local/lib )。这意味着你将需要安装新的Python 2.6所需的附加包。 最简单的方法是首先确保新的python2.6出现在您的search$PATH (也就是说, python2.6按预期方式调用它); python2.6安装程序应该已经修改了你的.bash_profile ,把它的框架bin目录放在$PATH的前面。 然后按照那里的说明使用setuptools安装easy_install 。 此步骤也会自动安装pkg_resources模块。

然后使用新安装的easy_install (或pip )安装ipython

 easy_install ipython 

要么

 pip install ipython 

它应该自动安装到该Python实例的正确site-packages位置,你应该很好去。

我遇到了同样的ImportError 。 不知怎的, setuptools包已经在我的Python环境中被删除了。

要解决这个问题,请运行setuptools的安装脚本:

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

如果您有任何版本的distribute版本,或0.6以下的任何setuptools ,您将不得不先卸载它。*

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


*如果您已经有一个工作distribute ,将其升级到“兼容性包装器”,将您切换到setuptools更容易。 但是,如果事情已经破裂,不要尝试。

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

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

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

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

我希望能帮助你弄清楚它是否丢失或者不在你的道路上。

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

如果你不下载IPython,然后安装python setup.py

安装程序不会将模块IPython添加到您的Pythonpath。 您可能需要手动将其添加到您的PYTHONPATH。 它应该在你做之后工作:

export PYTHONPATH = / pathtoIPython:$ PYTHONPATH

将这行添加到.bashrc或.profile中以使其成为永久的。

我意识到这与OSX无关,但是在embedded式系统(Beagle Bone Angstrom)上,我有完全相同的错误信息。 安装下面的ipk包解决了它。

 opkg install python-setuptools opkg install python-pip 

我在Ubuntu上得到这个错误,下面的工作对我来说:

删除了Dropbox二进制文件并通过运行再次下载它们:

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

我在高速公路相关项目上遇到同样的问题。

1)所以我下载了setuptools.-0.9.8.tar.gz表单https://pypi.python.org/packages/source/s/setuptools/并解压。;

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

在我的情况下,包python-pygments被错过了。 你可以通过命令来修复它:

sudo apt-get install python-pygments

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

sudo apt-get install pandoc pandoc-citeproc