【问题标题】:'pip==9.0.1' distribution was not found and is required by the application'pip==9.0.1' 分发未找到并且是应用程序需要的
【发布时间】:2018-12-25 18:55:08
【问题描述】:

我认为我的点子坏了。我已经尝试了从强制重新安装到更新所有内容的所有方法,但似乎没有任何效果。

当我执行pip2 -v 时,我得到以下信息:

Traceback (most recent call last):
  File "/usr/local/bin/pip2", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3144, in <module>
    @_call_aside
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3128, in _call_aside
    f(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3157, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 666, in _build_master
    ws.require(__requires__)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 984, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 870, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pip==9.0.1' distribution was not found and is required by the application

当我执行pip -v 时,我得到以下信息:

Traceback (most recent call last):
  File "/bin/pip", line 7, in <module>
    from pip._internal import main
ImportError: No module named pip._internal

仅供参考:我正在使用Mac OSX 并且正在使用Python 2.7.14

请帮忙!!

【问题讨论】:

  • @IshanSrivastava 虽然这是同一个问题,但那里的任何答案是否解释了问题,或者给出了任何人都应该做的解决方案?
  • 我很确定 /usr/local/lib/python2.7/site-packages 是 Apple 预装的 Python 2.7.10 的站点包,而不是您安装的任何 python.org/Homebrew/Anaconda/whatever 2.7.14 的站点包。所以你显然有一个 pip 9.0.1 脚本应该与你的 2.7.14 一起使用,但它认为它与你的 2.7.10 一起使用,它要么根本没有 pip,要么有一个旧版本。
  • sudo easy_install pip==9.0.1 为我修复了它。

标签: python error-handling installation pip


【解决方案1】:

由于您使用的是 macOS,因此您的计算机已经安装了 Apple 预装的 Python 2.7。如果您使用的是 macOS 10.13,则为 2.7.10;旧版本当然有旧版本。

同时,您已经安装了 Python 2.7.14。你没有告诉我们如何——python.org 安装程序、Anaconda、Homebrew 等等——但没关系。

问题是 Apple Python 2.7.10 仍然是你的“主要”2.7,所以你不知何故最终得到了一个 pip 9.0.1,它为你的 2.7.14 安装了它的包,但认为它应该运行用 Apple 2.7.10 代替。这就是为什么它在 /usr/local/lib/python2.7/site-packages 中查找的原因,这是 Apple 2.7.10 的站点包,而不是您的 2.7.14。而且您要么没有 Apple 2.7.10 的pip,要么拥有旧版本。因此出现错误。


在处理多个 Python 安装(尤其是同一版本的多个安装)时感到头疼,这就是为什么 Python Packaging User Guide 建议您:

  • 使用python -m pip 运行pip
  • 尽可能使用虚拟环境。

我不知道您通常如何确保您运行的是 2.7.14 而不是 Apple 的 2.7.10,但是无论您运行什么命令,如果您使用 -m pip 执行相同的操作,则可以保证使用你的 2.7.14 而不是 Apple 的 2.7.10。例如,如果您通常键入python2,请使用python2 -m pip 而不是pip2

同时,如果您激活虚拟环境,pythonpip(以及其他类似 2to3)都将成为该环境的版本,无论您碰巧安装了什么以及您的整体系统设置有多混乱。

【讨论】:

  • 做 python --version 给了我 Python 2.7.14。当我执行 which python 时,我得到:/usr/local/bin/python。当我执行 python -m pip 时,我得到:/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: No module named pip
  • @user10096621 好的,你是如何安装 2.7.14 的?来自 python.org 的安装程序包?自制?蟒蛇? ./configure &amp;&amp; make &amp;&amp; make install? ……?您是否更改了任何默认复选框/同时这样做?
  • @user10096621 我的猜测是你有一个工作的pip,但是你不小心为Apple的Python安装了pip,以一种半覆盖另一个的方式,现在事情已经无可救药地搞砸了向上,您将需要rm /usr/local/bin/pip*,然后是python -m ensurepip --defaultpip,然后是python -m pip install --upgrade pip setuptools。但请在尝试之前回答,因为我不想给你建议,而不是解决问题,这可能会使事情变得更糟。
  • 我使用 Homebrew 安装了 python。而且我认为你是对的,因为我一直在尝试很多解决方案来修复我的点子,这只是有点搞砸了。请让我知道现在可以做些什么来解决!
  • @user10096621 如果您可以卸载除 Apple 之外的所有 Python,清除站点包目录,重新安装 Homebrew Python,它会告诉您是否有任何冲突的脚本或符号链接遗留在/usr/本地。删除那些并重试。然后你应该有一个工作 pip 和一个全新的干净安装没有问题。如果您可以切换到使用虚拟环境(而且,您实际上是否需要使用 2.7 而不是 3.7?),它可以避免将来可能出现的更多问题,但只要您小心不要使用 Apple Python这不应该是必要的。
【解决方案2】:

刚刚在我的 Mac 上遇到了同样的问题,我修复了它

$ brew upgrade python@2

上述命令本质上是把 Apple 的 python 2.7.10 还给你。

$ which python
/usr/bin/python
$ python -V
Python 2.7.10

Pip 立即生效,可以升级到 19.0.1

pip --version
pip 18.1 from /usr/local/lib/python2.7/site-packages/pip (python 2.7)
pip install --upgrade pip setuptools
pip --version
pip 19.0.1 from /usr/local/lib/python2.7/site-packages/pip (python 2.7)

这就是brew upgrade python@2 不得不说的关于 mac 上的 python

==> python@2
Pip and setuptools have been installed. To update them
  pip install --upgrade pip setuptools

You can install Python packages with
  pip install <package>

They will install into the site-package directory
  /usr/local/lib/python2.7/site-packages

See: https://docs.brew.sh/Homebrew-and-Python

【讨论】:

猜你喜欢
  • 2017-09-04
  • 2019-10-19
  • 2016-11-29
  • 2018-07-28
  • 2019-05-12
  • 2019-11-12
  • 1970-01-01
  • 1970-01-01
  • 2015-10-26
相关资源
最近更新 更多