3

在 OSX 10.7.5 上,我正在尝试使用该pip3命令将软件包安装到 python3。当我尝试时,我收到以下错误消息:

zak$ pip3
Traceback (most recent call last):
  File "/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/setuptools-1.0-py3.3.egg/pkg_resources.py", line 2793, in <module>
  File "/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/setuptools-1.0-py3.3.egg/pkg_resources.py", line 673, in require
  File "/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/setuptools-1.0-py3.3.egg/pkg_resources.py", line 580, in resolve
pkg_resources.VersionConflict: (pip 1.4.1 (/usr/local/lib/python3.3/site-packages), Requirement.parse('pip==1.3.1'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/pip3", line 5, in <module>
    from pkg_resources import load_entry_point
  File "<frozen importlib._bootstrap>", line 1567, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1534, in _find_and_load_unlocked
  File "/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/setuptools-1.0-py3.3.egg/pkg_resources.py", line 2797, in <module>
  File "/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/setuptools-1.0-py3.3.egg/pkg_resources.py", line 576, in resolve
pkg_resources.DistributionNotFound: pip==1.3.1

看起来setuptools需要旧版本的 pip(我安装了 1.4.1),但为什么呢?我怎样才能解决这个问题?

4

3 回答 3

2

问题似乎是您有两个不同的 Python 3.3 安装和一个共享的站点包目录。*您运行的工具pip3来自 pip 1.3.1,但它用于完成工作的模块来自 pip 1.4。 1.

解决这个问题的最简单方法,除非你真的需要两个 Python 3.3 安装,否则完全摆脱它们,然后重新安装你想要的。

以下应该可以工作(可能与sudo某些命令一起使用 - 或使用 Finder 并让它告诉您是否需要进行身份验证)。

请注意,这将部分或完全删除任何其他第三方 Python 版本(例如,python.org 2.7.5),我认为这对您来说不是问题,但可能对未来的读者有影响。

在卸载任何东西之前,您可能希望列出所有已安装的软件包。(我通常以最骇人听闻的方式做到这一点:启动ipython,然后让它用制表符完成导入语句……)

最后,对于未来有类似问题的读者来说,其中一些细节会有所不同,但基本思想应该是相同的。

  • brew uninstall python3
  • rm -rf /Library/Frameworks/Python.framework
  • rm -rf /usr/local/lib/python*
  • rm -rf /usr/local/share/python*
  • 查找在~/.bash_profile(或~/.profile其他地方)将 Python 路径添加到 PATH 的位置。你可能有/usr/local/share/python3和/或里面的东西Python.frameworkor Cellar/python3。把你找到的所有东西都报废。
  • 在 Terminal.app 中启动一个新的 shell。
  • brew doctor, 并修复它抱怨的任何可能相关的东西(非 Homebrew MacFUSE 的东西按原样很好;这个brew prune建议可能值得做,但在这里无关紧要),然后再次运行它以确保。
  • brew install python3.
  • pip3重新安装您删除但再次需要的任何软件包。

* 细节:

  • Homebrew Python 3.3 安装在 中/usr/local/Cellar/python3/3.3.2/,各种符号链接到/usr/local/bin它的兄弟姐妹中,并可能链接到/Library某个地方。
  • 另一个 Python 3.3,可能来自 python.org 安装程序,安装在PATH 中/Library/Frameworks/Python.framework/Versions/3.3/,各种东西可能被符号链接到/usr/local/bin或以其他方式添加到您的 PATH 中。
  • 两者都可能包含/usr/local/lib/python3.3在他们的站点包搜索中。
于 2013-08-23T20:44:47.090 回答
0

这似乎是由损坏的 Python 安装引起的,我能够通过使用 Homebrew 重新安装 Python 来修复它。

brew reinstall python3
于 2020-01-21T04:42:23.523 回答
0

运行后

pip install --upgrade setuptools

我能够修复它。但这可能不适用于每个人,因为我仍在学习 Python。

于 2016-08-03T17:16:40.493 回答