2009-11-18 46 views
79

我剛剛在我的Mac上將Python更新爲2.6.4。 我從dmg軟件包安裝。什麼導致ImportError:在OS X上升級Python後沒有名爲pkg_resources的模塊?

二進制似乎沒有正確設置我的Python路徑,所以我在.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'] 

添加'/usr/local/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或者確保它的路徑上。

我需要做些什麼來解決這個問題?

回答

73

[UPDATE] TL; DR pkg_resourcesDistributesetuptools提供。

[更新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的具體問題再回應]:

你不要在你的問題,但我假設你從Apple提供的Python(2.5對10.6 10.5或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的前面。然後按照那裏的說明使用setuptools安裝easy_installpkg_resources模塊也是通過這一步自動安裝的。

然後使用新安裝的版本easy_install(或pip)安裝ipython

easy_install ipython 

pip install ipython 

應該自動被安裝到正確的位置site-packages對於Python實例,你應該是好去。

+0

我搞砸了,當我試圖昨晚安裝setuptools。 我忽略了通過運行.egg文件來完成安裝,就好像它是一個shell文件一樣。 $ sh setuptools-0.6c11-py2.6.egg 我想在某處添加新的Python路徑。 – BryanWheelock 2009-11-18 19:30:26

+0

注意:爲我解決此問題的實際答案在下面 - 請參閱http://stackoverflow.com/a/10538341/293064 – 2013-04-20 16:45:49

+0

我已經更新了這個舊的答案,使其更加明顯,解決方案是要麼安裝'分發'或'setuptools'。具體步驟在鏈接中。 OP的問題涉及其他項目。 – 2013-04-20 17:22:04

3

在我的系統(OSX 10.6)這個包是在

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

我希望幫助你弄清楚,如果它丟失或只是沒有你的路徑上。

7

如果在mac os 10.7上升級python並且pkg_resources不起作用,解決此問題的最簡單方法就是將setuptools重新安裝爲上面提到的Ned。

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

我遇到了同樣的ImportError。不知怎的,setuptools包已在我的Python環境中被刪除。

要解決此問題,運行安裝腳本setuptools

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

如果你有distribute任何版本或低於0.6的任何setuptools,則必須先卸載它*

有關更多詳細信息,請參見Installation Instructions


*如果您已經有一個工作distribute,它升級到切換你交給setuptools是比較容易的「兼容性包裝」。但如果事情已經破裂,不要嘗試。

+3

這是做正確的方式不通過pkg_resources, 'easy_install'也可能不起作用(所以'easy_install'和'pip'將無法安裝setuptools) – 2012-08-15 20:57:42

+0

安裝Distribute或setuptools實際上是接受的答案,我已經更新了原始答案有點讓它更加明顯,順便說一下,從不安全的URL那裏下載並安裝一些東西,而不是首先檢查文件的內容是有點危險的。 – 2013-04-20 17:35:05

1

原因可能是因爲IPython模塊不在您的PYTHONPATH中。

如果donwload IPython的,然後做 蟒蛇的setup.py安裝

的設置不模塊IPython的添加到您的Python路徑。 您可能需要手動將其添加到您的PYTHONPATH中。它應該工作後,你這樣做:

出口PYTHONPATH =/pathtoIPython:$ PYTHONPATH

在你的.bashrc加入這行或.profile,使其永久化。

0

我意識到這與OSX無關,但在嵌入式系統(Beagle Bone Angstrom)上我有完全相同的錯誤信息。安裝以下ipk軟件包解決了它。

opkg install python-setuptools 
opkg install python-pip 
0

我對Ubuntu的得到這個錯誤,下面爲我工作:通過運行

刪除了Dropbox的二進制文件,並重新下載,:

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

我遇到的同樣的問題,當我在高速公路相關項目工作。

1)所以我下載setuptools.-0.9.8.tar.gz表格https://pypi.python.org/packages/source/s/setuptools/並提取它。

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

相關問題