在OS X上升级Python后,导致ImportError: No module named pkg_resources的原因是什么?
当在OS X上升级Python之后,可能会遇到"ImportError: No module named pkg_resources"的错误。这个错误的原因是Python环境中的`setuptools`包被删除了。
为了解决这个问题,可以运行`setuptools`的安装脚本:
curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python
如果你的系统中已经安装了任何版本的`distribute`,或者安装了低于0.6版本的`setuptools`,你需要先卸载它。
安装说明中提供了更多详细的安装方法。
如果你已经有一个可用的`distribute`,将其升级为可以切换到`setuptools`的"compatibility wrapper"将更加简单。但是,如果已经出现了问题,不要尝试这种方法。
没有`pkg_resources`,`easy_install`很可能也无法工作(因此`easy_install`和`pip`无法安装`setuptools`)。
实际上,安装`Distribute`或`setuptools`就是接受的答案推荐的方法。我已经对原始答案进行了一些更新,使其更加明显。顺便说一下,在不先检查文件内容的情况下,从不安全的URL下载和安装文件是有一定风险的。
问题的原因是在升级了OS X上的Python之后出现了“ImportError: No module named pkg_resources”错误。该错误是由于缺少pkg_resources模块引起的。解决方法是安装Distribute或setuptools。可以通过以下步骤解决:
1. 下载ez_setup.py文件:
curl -O https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
2. 运行ez_setup.py文件:
python ez_setup.py
或者,更好的方法是使用当前的pip作为高级接口,它会在内部使用setuptools:
pip install ipython
这样就会自动将ipython安装到正确的site-packages位置,然后问题就解决了。