当我尝试更新 pip 或安装软件包时出现“警告:scheme.data 的值不匹配”

新手上路,请多包涵

我有一台 M1 Mac,我只是注意到当我尝试升级 pip 或安装任何软件包时,我收到了一系列警告:

 user@mac01 ~ $python3 -m pip install --upgrade pip
WARNING: Value for scheme.platlib does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew/lib/python3.9/site-packages
sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages
WARNING: Value for scheme.purelib does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew/lib/python3.9/site-packages
sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages
WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew/include/python3.9/UNKNOWN
sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/include/python3.9
WARNING: Value for scheme.scripts does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew/bin
sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/bin
WARNING: Value for scheme.data does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew
sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9
WARNING: Additional context:
user = False
home = None
root = None
prefix = None
Requirement already satisfied: pip in /opt/homebrew/lib/python3.9/site-packages (21.1)
WARNING: Value for scheme.platlib does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew/lib/python3.9/site-packages
sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages
WARNING: Value for scheme.purelib does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew/lib/python3.9/site-packages
sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages
WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew/include/python3.9/UNKNOWN
sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/include/python3.9
WARNING: Value for scheme.scripts does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew/bin
sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/bin
WARNING: Value for scheme.data does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew
sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9
WARNING: Additional context:
user = False
home = None
root = None
prefix = None
user@mac01 ~ $

请指教。

原文由 daquezada 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

降级到早期版本的 pip 为我修复了它:

python -m pip install pip==21.0.1

原文由 EmilMachine 发布,翻译遵循 CC BY-SA 4.0 许可协议

(这里有一个 pip 维护者!)

此警告本身无害,不会影响任何安装逻辑。您可以安全地使用当前 pip,暂时忽略此警告。

对于那些想要快速回答以消除此警告的人: python -m pip install pip=={some-older-version} 你现在可以固定到旧版本的 pip。这是不必要的 IMO,但你可以选择你的毒药(一些警告与旧的 pip 版本相比忽略)。


对于那些想要了解更多信息的人:添加此警告是因为我们希望在未来进行过渡时浮出水面可能发生的问题。

由于历史原因(嗯… Python 2),pip 已使用 distutils.sysconfig 获取有关安装 Python 包的位置的信息。该模块在功能上可以替换为 sysconfig 已添加到 Python 3.2 中的 Python 标准库。但是,Python 发行商对其进行了修补(而不是 sysconfig )以提供替代的“默认安装方案”。

PEP 632 弃用了 distutils,它将从 Python 标准库中删除。 distutils 基于安装是 Python 打包社区一段时间以来一直试图弃用和删除的东西。

我们一直在与许多发行商合作,让他们修复他们的补丁,以便将来的安装可以过渡到使用 sysconfig 作为他们的真实来源。此消息是我们“从损坏的 Python 安装的用户那里获取信息”的一部分。您可能已经注意到,具有不同配置的 distutils.sysconfigsysconfig 的 Python 安装比我们预期的要普遍得多。 :)

更新:较新版本的 pip (>21.1.1) 应该更少出现这些消息。如果您仍然看到这些消息,请查看消息中包含的问题。

原文由 pradyunsg 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题