2011-05-16 137 views
58

我有一臺運行Python 2.6的Mac。當我嘗試使用easy_install我得到這個消息:爲什麼Python easy_install無法在我的Mac上運行?

/usr/bin/easy_install-2.6:7: UserWarning: Module pkg_resources was already imported from /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.pyc, but /Library/Python/2.6/site-packages is being added to sys.path 
    from pkg_resources import load_entry_point 
/usr/bin/easy_install-2.6:7: UserWarning: Module site was already imported from /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site.pyc, but /Library/Python/2.6/site-packages is being added to sys.path 
    from pkg_resources import load_entry_point 
Traceback (most recent call last): 
    File "/usr/bin/easy_install-2.6", line 10, in <module> 
    load_entry_point('setuptools==0.6c9', 'console_scripts', 'easy_install')() 
    File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 271, in load_entry_point 
    return False 
    File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 2173, in load_entry_point 
    deps = [] 
ImportError: Entry point ('console_scripts', 'easy_install') not found 

我爲此很困惑,我想知道我怎麼能解決這個問題。以前,我沒有收到此消息,然後在安裝pip並卸載後,easy_install不再有效。我想知道如何解決這個問題,或者在Mac上恢復默認的Python或easy_install設置。

回答

26

我懷疑你能得到easy_install再次合作是安裝distribute,這是distutils的改進版本捆綁了它自己的easy_install版本的最簡單的方法。安裝很簡單:

curl -O http://python-distribute.org/distribute_setup.py 
/usr/bin/python2.6 distribute_setup.py 
+0

如果您使用[自制](http://mxcl.github.com/homebrew/),你可以做'須藤釀造安裝distribute' – 2012-02-12 00:28:21

+2

@DanaWoodman這不是有效的自制配方。 – Wylie 2012-03-09 04:19:32

+0

現在'distribute'現在帶有python配方,但是腳本放在'/ usr/local/share/python /'中,因此你可能會在/ usr/local/bin中找到一箇舊版本的easy_install符號鏈接'。請參閱:https://github.com/mxcl/homebrew/wiki/Homebrew-and-Python – 2012-05-11 12:15:58

4

您的setuptools安裝已損壞。 /usr/bin目錄中的easy_install-2.6腳本只是一個在Python安裝中加載實際easy_install模塊的包裝,後者缺失。假設卸載pip或者打破了指向它的指針(通常以site-packages目錄中的.pth文件的形式),或者刪除了整個包但未刪除/usr/bin/easy_install-2.6包裝腳本。

最好的辦法就是再次從零開始重新安裝``,按照instructions on the setuptools PyPI page

1

我有類似的錯誤消息後,類似的步驟。我懷疑這是因爲我試圖安裝分發模塊,並試圖安裝新版本的setuptools,因爲它無法正確覆蓋Mac OS X提供的setuptools,所以 不起作用。但這只是一個懷疑。

我通過執行以下操作來解決了我的問題。我發現目錄/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python 有4個名字中帶有.OLD的文件。當我做了一個比較類似命名的文件沒有.OLD從工作時(通過時間機器)我發現它們是相同的除了名稱。所以我做了以下的重命名:

setuptools.OLD.1305936263.57 -> setuptools
setuptools-0.6c9-py2.6.egg-info.OLD.1305936263.57 -> setuptools-0.6c9-py2.6.egg-info
pkg_resources.py.OLD.1305936263.57 -> pkg_resources
site.py.OLD.1305936263.59 -> site.py

我不得不使用命令行和sudo mv,因爲文件的所有者是root。例如:sudo mv setuptools.OLD.1305936263.57 setuptools。你必須輸入你的密碼。

我做的另一件事是清理/Library/Python/2.6/site-packages目錄。我使用Time Machine將其重新設置爲預先搞亂的狀態。如果您沒有Time Machine,那麼如果您刪除以分發,易於安裝,pip,pkg_resources,setuptools和網站開頭的任何文件或文件夾,則應該能夠恢復。

如果這樣做不能解決問題,請從該目錄中卸載任何模塊。例如,如果使用pip安裝模塊,請使用pip uninstall。這樣做的原因是安裝可以將文件複製到usr/local/bin以及該點將爲您刪除的其他位置。

接下來是時候刪除任何剩餘的模塊。重命名該文件夾(以防萬一您稍後想要的東西)並創建一個新的文件夾。

重新安裝你想要的模塊和一點點運氣你回到業務...

9

我有同樣的問題,只是在安裝新的操作系統(獅子OSX)之後。 安裝後Python和執行它

sudo easy_install ipython 
ipython 

我得到了以下錯誤:

Traceback (most recent call last): 
    File "/usr/local/bin/ipython", line 8, in <module> 
    load_entry_point('ipython==0.10.2', 'console_scripts', 'ipython')() 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 318, in load_entry_point 
    return get_distribution(dist).load_entry_point(group, name) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2220, in load_entry_point 
    raise ImportError("Entry point %r not found" % ((group,name),)) 
ImportError: Entry point ('console_scripts', 'ipython') not found 

然後,我意識到這是一個權限問題。如果我以sudo的方式執行ipython腳本。

sudo ipython 

所以我改變從根本所有權給我的用戶()的文件夾/Library/Python/2.7/site-packages/

sudo chown -R <your_user>:wheel /Library/Python/2.7/site-packages/ 

使用更改所有權的前提是你沒有使用python的幾個帳戶。

我希望它適合你。

最好

+0

在這種情況下,'chmod'可能比'chown'更好。 – icktoofay 2012-11-17 02:09:55

0

Martijn Pieter的回答是正確的。

  1. 轉到http://pypi.python.org/pypi/setuptools#downloads
  2. 下載setuptools-0.6c11-py2.7.egg
  3. 從您的下載目錄下運行:sudo ./setuptools-0.6c11-py2.7.egg

:-)完成

+0

我有一個非常類似的問題,但我不得不將setuptools降級到它要求的0.6c9。現在我有一個gcc錯誤。 – EddyR 2011-08-02 13:22:45

2

我有同樣的問題,我懷疑我的安裝引起的的Homebrew,它明顯地安裝了它自己的easy_install版本,並且搞砸了你正在運行的任何東西(足夠的時間用於ho mebrew認識到它是一個問題)。我在這裏找到了我的解決方案Upgraded Python on Snowleopard Using Homebrew now pip and easy_install don't work

雖然我實際上在Lion上,但它仍然解決了我的問題。你只需從http://pypi.python.org/pypi/ez_setup下載ez_setup.py - 通過終端運行ez_setup.py,你就可以參加比賽了。

+0

謝謝,幫了很多。 – 2012-07-24 10:04:23

152
  1. 檢查你的/ usr/bin下的/ usr/local/bin中的easy_install的安裝和卸載舊腳本:

    sudo rm -f /usr/bin/easy_install* 
    sudo rm -f /usr/local/bin/easy_install* 
    
  2. 下載並運行分發:

    curl -O https://svn.apache.org/repos/asf/oodt/tools/oodtsite.publisher/trunk/distribute_setup.py 
    
    sudo python distribute_setup.py 
    sudo rm distribute_setup.py 
    
  3. 再試一次,享受。例如:

    sudo easy_install pip 
    
+3

這些說明在Mountain Lion升級完成之後完美運行。這讓easy_install和pip工作,讓我升級我的virtualenv和virtualenvwrapper,一切都很開心。 – shacker 2012-09-29 05:35:56

+2

也在Linux上爲我工作,特別是CentOS 6. – Banjer 2013-04-16 19:41:01

+3

也在Ubuntu 12.04上工作。 – David 2013-08-18 17:47:28