为啥 Python easy_install 不能在我的 Mac 上运行?

Posted

技术标签:

【中文标题】为啥 Python easy_install 不能在我的 Mac 上运行?【英文标题】:Why is Python easy_install not working on my Mac?为什么 Python easy_install 不能在我的 Mac 上运行? 【发布时间】:2011-08-26 02:47:42 【问题描述】:

我有一台运行 Python 2.6 的 Mac。当我尝试使用 easy_install 时,我收到以下消息:

/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 设置。

【问题讨论】:

【参考方案1】:

    检查您的 /usr/bin 和 /usr/local/bin 是否安装了 easy_install 并删除所有旧脚本:

    sudo rm -f /usr/bin/easy_install*
    sudo rm -f /usr/local/bin/easy_install*
    

    下载并运行分发:

    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
    

    再试一次,尽情享受吧。例如:

    sudo easy_install pip
    

【讨论】:

Mountain Lion 升级后,这些说明运行良好。这让 easy_install 和 pip 正常工作,这让我升级了我的 virtualenv 和 virtualenvwrapper,一切都又好了。 这在安装 OSX 10.9 Mavericks 后也对我有用。谢谢 我开始“-bash: /usr/bin/easy_install: 没有这样的文件或目录”,我可能忘记了最后的星号,关于如何解决我的困境有什么想法吗? 不用担心。这意味着它在那里找不到它,但有可能你在 /usr/local/bin 上有它们......无论如何,重新执行所有命令。 使用 URL https://svn.apache.org/repos/asf/oodt/tools/oodtsite.publisher/trunk/distribute_setup.py,因为 python-distribute.org 没有启动。【参考方案2】:

我怀疑让easy_install 再次工作的最简单方法是安装distribute,这是distutils 的改进版本,捆绑了它自己的easy_install 版本。安装很简单:

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

【讨论】:

如果您使用的是Homebrew,您可以使用sudo brew install distribute 看来distribute 现在带有python 配方,但脚本被放入/usr/local/share/python/,因此您可能会选择/usr/local/bin 中符号链接的旧版本easy_install。见:github.com/mxcl/homebrew/wiki/Homebrew-and-Python 非常感谢,这解决了我的 Python 安装问题! pip、easy_install等朋友升级pip+virtualenv后都报错。 听起来easy_install的安装一点也不轻松。 (耸肩)【参考方案3】:

我在安装新操作系统 (Lion 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/的所有权从root更改为我的用户()

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

仅当您没有多个使用 python 的帐户时才使用更改所有权。

我希望它对你有用。

最好的

【讨论】:

在这种情况下,chmod 可能比chown 更好。【参考方案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 重新安装setuptools

【讨论】:

【参考方案5】:

我遇到了同样的问题,我怀疑是由于我安装了 Homebrew 造成的,它显然盲目地安装了自己的 easy_install 版本并搞砸了你当前正在运行的任何东西(足够的时间让 Homebrew 将其识别为问题)。我在这里找到了我的解决方案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 即可参加比赛。

【讨论】:

【参考方案6】:

在执行类似步骤后,我收到了类似的错误消息。我怀疑这是因为我尝试安装分发模块,并且它尝试安装新版本的 setuptools 不太好用,因为它未能正确覆盖 Mac OS X 提供的 setuptools。但这只是一个怀疑。

我通过执行以下操作解决了我的问题。我发现目录/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python 有 4 个名称中带有 .OLD 的文件。当我与没有 .OLD 的类似名称的文件进行比较时(通过 Time Machine),我发现它们除了名称之外是相同的。所以我做了以下重命名:

setuptools.OLD.1305936263.57 -> 设置工具 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,因为这些文件归根用户所有。例如:sudo mv setuptools.OLD.1305936263.57 setuptools。您必须输入密码。

我做的另一件事是清理/Library/Python/2.6/site-packages 目录。我使用 Time Machine 将其设置回之前的混乱状态。如果您没有 Time Machine,那么如果您删除任何以分发、easy-install、pip、pkg_resources、setuptools 和 site 开头的文件或文件夹,您应该能够恢复。

如果这不起作用,请从该目录中卸载您可以卸载的任何模块。例如,如果您使用 pip 安装模块,请使用 pip uninstall。这样做的原因是安装可以将文件复制到usr/local/bin 和 pip 将为您删除的其他位置。

接下来是移除所有剩余模块的时候了。重命名文件夹(以防以后有您想要的东西)并创建一个新的空文件夹。

重新安装您想要的模块,运气好的话您就可以重新开始工作了...

【讨论】:

【参考方案7】:

Martijn Pieter 的回答是正确的。

    转到http://pypi.python.org/pypi/setuptools#downloads 下载setuptools-0.6c11-py2.7.egg 从您的下载目录运行:sudo ./setuptools-0.6c11-py2.7.egg

完成:-)

【讨论】:

我有一个非常相似的问题,但我不得不将 setuptools 降级到它要求的 0.6c9。现在我有一个 gcc 错误。

以上是关于为啥 Python easy_install 不能在我的 Mac 上运行?的主要内容,如果未能解决你的问题,请参考以下文章

为啥easy_install会提取一些python鸡蛋而不是其他的?

为啥 python 框架安装指南会建议对一些必需的包使用 easy_install 而对其他包使用 pip?

为啥easy_install依赖检查在线

python 安装easy_install和pip

Python 安装包setuptools easy_install pip

python 安装easy_install和pip