2011-05-16 136 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