是什么导致了 Import Error: 在 OS X 上升级 Python 之后没有名为 pkg_resources 的模块?

我刚在 Mac 上把 Python 升级到了2.6。 我从 dmg 软件包安装的。

二进制文件似乎没有正确设置 Python 路径,因此我在 .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']

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

我已经做了谷歌搜索,我不能真正搞清楚如何安装 pkg_resources或确保它的路径。

我要怎么做才能解决这个问题?

172817 次浏览

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

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

我希望这能帮你弄清楚,你的路上是不是少了什么。

DR pkg_resources分发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 升级(2.5对10.5或2.6.1对10.6)或者你从 Python.org Python 2.5升级。在这些情况下,重要的一点是每个 Python 实例都有自己的库,包括自己的站点包库,这是安装其他包的地方。(顺便说一句,它们都没有默认使用 /usr/local/lib。)这意味着您需要安装新的 python 2.6所需的附加软件包。最简单的方法是首先确保新的 python2.6在您的搜索 $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位置,您应该可以安装了。

如果在 mac os 10.7上升级 Python 并且 pkg _ resources 不能工作,最简单的解决方法就是像 Ned 上面提到的那样重新安装 setuptools。

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

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

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

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

如果你有任何版本的 distribute,或者任何低于0.6的 setuptools,你必须先卸载它。 *

详情请参阅 安装说明


* 如果您已经有一个可以工作的 distribute,那么将它升级到切换到 setuptools的“兼容性包装器”会更容易。但如果事情已经坏了,不要尝试。

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

如果你不下载 IPython 然后做 Python setup.py 安装

安装程序不会将模块 IPython 添加到 Python 路径中。 您可能需要手动将其添加到 PYTHONPATH 中:

Export PYTHONPATH =/pathtoIPython: $PYTHONPATH

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

我意识到这与 OSX 无关,但在嵌入式系统(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)所以我从 https://pypi.python.org/packages/source/s/setuptools/下载 setuptools.-0.9.8. tar.gz 并解压缩它。

2)然后我得到 pkg _ resources 模块,并将其复制到需要的文件夹中。 * * 在我的案例中,该文件夹是 C: Python 27 Lib site-package autobahn

在我的例子中,程序包 python-pygments丢失了。您可以通过命令修复它:

sudo apt-get install python-pygments

如果 pandoc有问题,你应该安装 pandocpandoc-citeproc

sudo apt-get install pandoc pandoc-citeproc

只有在卸载 python 没问题的情况下才可以尝试这样做。

我卸载的 Python 使用

brew uninstall python

然后安装

brew install python

那就成功了!