30

在工作中,我们使用 Github 操作来构建和测试我们的拉取请求,然后才能获得批准。周五下午,一切正常。周一早上,所有的测试都很早就失败了,错误显示 pip 无法再找到自己的异常。最新的 Pip 有什么变化吗?

正如您在下面的错误中看到的那样,我们自己的代码没有被引用,而且我相当肯定我们的流程在周五和周一之间没有任何变化(我们是一个小团队,批准的 PR 没有任何令人惊讶的地方) )。

错误回溯:

Traceback (most recent call last):
    File "/opt/hostedtoolcache/Python/3.7.9/x64/bin/pip", line 5, in <module>
      from pip._internal.cli.main import main
    File "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/cli/main.py", line 8, in <module>
      from pip._internal.cli.autocompletion import autocomplete
    File "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/cli/autocompletion.py", line 9, in <module>
      from pip._internal.cli.main_parser import create_main_parser
    File "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/cli/main_parser.py", line 7, in <module>
      from pip._internal.cli import cmdoptions
    File "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/cli/cmdoptions.py", line 22, in <module>
      from pip._internal.cli.progress_bars import BAR_TYPES
    File "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/cli/progress_bars.py", line 9, in <module>
      from pip._internal.utils.logging import get_indentation
    File "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/utils/logging.py", line 14, in <module>
      from pip._internal.utils.misc import ensure_dir
    File "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/utils/misc.py", line 29, in <module>
      from pip._internal.locations import get_major_minor_version, site_packages, user_site
    File "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/locations/__init__.py", line 9, in <module>
      from . import _distutils, _sysconfig
    File "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/locations/_sysconfig.py", line 8, in <module>
      from pip._internal.exceptions import InvalidSchemeCombination, UserInstallationInvalid
  ImportError: cannot import name 'InvalidSchemeCombination' from 'pip._internal.exceptions' (/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/exceptions.py)
Error: The process '/opt/hostedtoolcache/Python/3.7.9/x64/bin/pip' failed with exit code 1
4

9 回答 9

23

因为macOS X,这个问题在我升级自制软件后发生在我身上,真正对我有用的是这个,

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

然后

python get-pip.py

根据参考文献中的讨论,似乎只能pip version 21.1.1解决问题。

参考以下讨论 https://github.com/pypa/pip/issues/7217

于 2021-05-19T15:21:53.813 回答
12

ImportError:无法从“pip._internal.exceptions”导入名称“InvalidSchemeCombination”

此错误背后的原因是 pip 文件已损坏。

100% 的解决方案很简单,如下所示:

  1. 首先执行命令:python -m ensurepip --default-pip
  2. 从https://bootstrap.pypa.io/get-pip.py下载get-pip.py脚本文件
  3. 打开终端/命令提示符(管理员权限),cd到包含下载的get-pip.py文件的文件夹并运行:python get-pip.py
  4. 现在问题已经解决了。
于 2021-10-10T17:40:48.350 回答
9

是的,有一个版本,最后一次修改该文件的提交是从 2 天前开始的,但很可能它会更旧。

引用NEWS.rst它看起来正在进行一些迁移:

Process
-------

- Start installation scheme migration from ``distutils`` to ``sysconfig``. A
  warning is implemented to detect differences between the two implementations to
  encourage user reports, so we can avoid breakages before they happen.

但是,最好提交错误,以便他们可以在必要时发布修复程序。

经典解决方法,降级到21.0.1 ,即 21.1 之后的下一个最新版本:

pip install pip==21.0.1

更新:

链接OP 提交的问题#9880 。

更新 2:

根据OP的问题和其他人在链接问题中的经验进行调整。

不要使用-Iflagpip install它是用于安装系统上存在的文件(因此pip install --ignore-installed)而不是真正的升级(安装新版本,然后删除旧版本)。

相反,使用-U(ie pip install --upgrade) 标志,它会做你想做的事。

于 2021-04-26T20:50:52.697 回答
7

pip install pip==21.0.1对我的情况不起作用。运行此命令仍然会引发相同的错误。

您需要将get-pip.py文件保存在anaconda3\Scripts目录中,或者anaconda3\envs\[env_name]\Scripts如果您正在使用虚拟环境。然后,你需要cd到这个目录:

cd anaconda3\Scripts

之后运行:

python get-pip.py pip==19.3.1

或者

python get-pip.py pip==21.0.1
于 2021-05-20T09:44:36.067 回答
3

我在linux上遇到了同样的问题。这是 debian 或类似版本的解决方案:

首先下载get-pip.py

wget https://bootstrap.pypa.io/get-pip.py

或者转到url并将所有内容复制到.py系统上的新文件中。您可以随意命名,但请确保在下一步中使用相同的文件名。

然后安装特定版本的pip(与get-pip.py文件在同一目录下执行):

python get-pip.py pip==21.0.1 #or any other version
于 2021-10-13T11:10:09.163 回答
2

通过以下方式更新 Conda 后遇到此问题conda update anaconda

问题似乎与pip v21.2.4

正如上面所说的 Mahmood GB:

  1. 执行命令:python -m ensurepip --default-pip
  2. 转到https://bootstrap.pypa.io/
  3. 右键单击get-pip.py然后将文件保存到本地目录
  4. 打开terminal/command prompt (Admin privileges),cd到包含下载get-pip.py文件的文件夹并运行:python get-pip.py
  5. 安装后忽略提示升级

“警告:您使用的是 pip 版本 21.0;但是,版本 21.3.1 可用。您应该考虑通过python -m pip install --upgrade pip命令升级”

于 2021-11-02T18:42:13.550 回答
2

pip 命令根本不起作用

对于 Windows 10,这对我有用:-

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

在这之后

python get-pip.py
于 2021-05-28T03:14:55.210 回答
1

对于 Windows 用户,这个问题在我升级到 pip v21.2.4 后发生在我身上,真正对我有用的是这个,

所以,我删除了我的旧 v 的 pip,并使用 CMD 重新安装通过这些步骤删除那些旧版本:

  1. 在桌面上,单击或点击任务栏上的文件资源管理器按钮。
  2. 在搜索栏中键入此路径C:\Users\Win\anaconda3\Scripts 或以某种方式应用 python38 的旧安装
  3. 查找名称为pip3、的文件pip3.8pip3-scriptpip-script删除这些文件。
  4. 删除这些文件后,使用 cmd 重新安装 pip 工作正常。
于 2021-10-10T14:04:29.473 回答
-2
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py

python get-pip.py
于 2022-01-19T09:58:54.053 回答