You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pop!_OS系统Python3.8环境下执行pip命令触发macOS keyring插件初始化错误的原因及解决方法

解决Pop!_OS上pip触发keyring macOS后端模块缺失的错误

我来帮你拆解这个问题——我之前在Linux系统上也碰到过类似的keyring插件加载问题,其实背后的逻辑很清晰:

为什么各类基础pip命令会触发这个错误?

pip依赖keyring这个跨平台库来处理凭据(比如私有PyPI仓库的密码)的存储和读取。keyring的工作机制是自动扫描并加载所有已注册的后端插件,不管当前运行的是什么操作系统。

在你的Pop!_OS系统上,keyring的插件注册表中依然包含了针对macOS的后端条目,但这个模块显然不存在于Linux系统中,所以当keyring尝试加载它时就会抛出ModuleNotFoundError。好在这个错误只是插件加载失败,并不影响pip的核心功能(比如安装包、列出过时包),所以命令还能正常执行,但错误信息会反复出现。

为什么错误会和macOS相关?

keyring是为跨平台设计的凭据管理库,它为不同操作系统提供了专属的后端实现:

  • macOS上使用keyring.backends.macOS对接系统钥匙串
  • Linux上通常用keyring.backends.SecretService对接GNOME密钥环(Pop!_OS默认支持)
  • Windows上用keyring.backends.Windows.WinVault

这些后端会统一注册到keyring的插件系统中,不管你当前用的是什么系统,keyring都会尝试遍历所有注册的后端去加载。这就导致在Linux系统上,它还是会尝试加载专为macOS设计的后端模块,进而触发错误。

解决方法

下面是几种可行的解决方式,按推荐程度排序:

1. 指定Linux专属的keyring后端(推荐)

通过配置文件让keyring只加载适合Linux的后端,避免尝试加载macOS模块:

  • 先创建keyring的配置目录:
    mkdir -p ~/.config/python_keyring
    
  • 创建配置文件~/.config/python_keyring/keyringrc.cfg,写入以下内容:
    [backend]
    default-keyring=keyring.backends.SecretService.Keyring
    

保存后,再执行pip命令就不会再弹出这个错误了。

2. 重新安装适合Linux的keyring

如果配置文件方法无效,可以尝试重新安装keyring,确保系统上的版本是适配Linux的:

  • 先卸载现有版本:
    pip3 uninstall keyring
    
  • 用系统包管理器安装(更稳定,适配Pop!_OS):
    sudo apt install python3-keyring
    

或者用pip重新安装:

pip3 install keyring

3. 临时禁用keyring(仅临时测试用)

如果只是想快速屏蔽错误信息,不影响当前操作,可以临时设置环境变量让keyring不加载任何后端:

export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring

注意:这个方法会让keyring完全失效,如果你需要访问需要凭据的私有PyPI仓库,不要长期使用。

内容的提问来源于stack exchange,提问作者Tim U

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 10:12:41