什么导致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所宣布的, Distribute
和setuptools
项目已经重新合并。 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
有问题。 您应该安装pandoc
和pandoc-citeproc
。
sudo apt-get install pandoc pandoc-citeproc