pip3说“解决pkg_resources.DistributionNotFound:pip == 1.3.1”

时间:2013-08-22 23:23:05

标签: python macos python-3.x pip setuptools

在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),但为什么呢?我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

问题似乎是您有两个不同的Python 3.3安装和一个共享的site-packages目录。*您作为pip3运行的工具来自pip 1.3.1,但它用于的模块它的工作来自pip 1.4.1。

解决这个问题的最简单方法是,除非你真的需要同时安装Python 3.3,否则就要彻底摆脱它们,然后重新安装你想要的那个。

以下内容应该有效(可能使用sudo来执行某些命令 - 或者使用Finder并让它告诉您是否需要进行身份验证。)

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

您可能希望在卸载任何内容之前列出所有已安装的软件包。 (我通常以最黑的方式执行此操作:启动ipython,然后使用Tab键完成导入语句...)

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

  • brew uninstall python3
  • rm -rf /Library/Frameworks/Python.framework
  • rm -rf /usr/local/lib/python*
  • rm -rf /usr/local/share/python*
  • ~/.bash_profile(或~/.profile或其他地方)中查找将路径添加到PATH的位置。您可能在/usr/local/share/python3Python.framework内有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.org安装程序的另一个Python 3.3安装在/Library/Frameworks/Python.framework/Versions/3.3/中,可能会将各种内容符号链接到/usr/local/bin或以其他方式添加到您的PATH中。
  • 两者都可能在其网站包搜索中包含/usr/local/lib/python3.3

答案 1 :(得分:0)

运行后

pip install --upgrade setuptools

我能够解决它。但是对于每个人来说这可能都不是真的,因为我还在学习Python。

答案 2 :(得分:0)

这似乎是由于Python安装失败造成的,我可以通过用Homebrew重新安装Python来修复它。

brew reinstall python3