关于macos:为什么Python easy_install无法在我的Mac上运行?

Why is Python easy_install not working on my Mac?

我有一台运行python 2.6的Mac。当我尝试使用easy_install时,我得到了以下信息:

1
2
3
4
5
6
7
8
9
10
11
12
/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设置。


  • 检查您的/usr/bin和/usr/local/bin以方便安装并删除任何旧脚本:

    1
    2
    sudo rm -f /usr/bin/easy_install*
    sudo rm -f /usr/local/bin/easy_install*
  • 下载并运行分发:

    1
    2
    3
    4
    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
  • 再试一次,享受吧。例如。:

    1
    sudo easy_install pip

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

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


    在安装了新的操作系统(lion osx)之后,我也遇到了同样的问题。在安装并执行python之后

    1
    2
    sudo easy_install ipython
    ipython

    我有以下错误:

    1
    2
    3
    4
    5
    6
    7
    8
    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脚本,它会起作用。

    1
    sudo ipython

    因此,我将文件夹/library/python/2.7/site-packages的所有权从根目录更改为用户()。/

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

    仅当您没有几个使用python的帐户时才使用change ownership。

    我希望它对你有用。

    最好的


    安装工具安装已中断。在您的/usr/bin目录中的easy_install-2.6脚本只是一个包装器,它在您的python安装中加载实际的easy_install模块,而后者丢失。可能卸载pip会破坏指向它的指针(通常以site-packages目录中的.pth文件的形式),或者删除整个包,但没有删除/usr/bin/easy_install-2.6包装脚本。

    您最好的办法是按照SETUPTOOLS PYPI页面上的说明重新从头安装setuptools


    我也有同样的问题,我怀疑是由于我安装了Homebrew,它显然会盲目安装自己的easy-install版本,并且会把您当前运行的任何程序弄乱(有足够的时间让Homebrew将其识别为问题)。我在这里找到了我的解决方案,用自制的pip和easy-install升级了雪豹上的python。

    当我在狮子上时,它仍然解决了我的问题。你只需从http://pypi.python.org/pypi/ez-setup-run ez-setup.py下载ez-setup.py到终端就可以开始比赛了。


    在执行了类似的步骤之后,我收到了类似的错误消息。我怀疑是因为我试图安装分发模块,它试图安装一个新版本的安装工具因为它未能正确覆盖Mac OS X提供的安装工具,所以无法正常工作。但那只是一种怀疑。

    我通过以下步骤解决了我的问题。我发现目录/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目录。我用时间机器把它设置回它的混乱状态。如果你没有时间机器,那么你应该能够恢复如果你删除任何文件或文件夹开始分发,易于安装,pip,pkg_资源,安装工具和网站。

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

    下一步是移除所有剩余模块的时候了。重命名文件夹(以备以后需要),并创建一个新的空文件夹。

    重新安装你想要的模块,幸运的是你又回到了正轨…


    马蒂金·彼得尔的回答是正确的。

  • 转到http://pypi.python.org/pypi/setuptools下载
  • 下载setuptools-0.6c11-py2.7.egg
  • 从下载目录运行:sudo ./setuptools-0.6c11-py2.7.egg
  • 完成:-)