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

在cx_Freeze/PyInstaller中用Keyring遇无推荐后端错误,求keyrings.alt用法

我来帮你搞定这个打包后运行keyring报错的问题!这个错误的核心原因是:不管用cx_Freeze还是PyInstaller,打包工具默认不会自动包含keyring的可选后端依赖,当程序在打包后的环境里找不到系统默认的密钥管理后端时,就会抛出这个提示。keyrings.alt就是用来提供备选后端的,下面是具体的解决步骤:

1. 先安装keyrings.alt包

首先确保你的开发环境里已经安装了这个备选后端包,执行命令:

pip install keyrings.alt

2. 调整打包配置(分工具处理)

针对cx_Freeze

你需要在setup.py里明确指定要包含keyring和keyrings.alt的模块,避免打包时被遗漏。下面是一个示例配置:

from cx_Freeze import setup, Executable

# 定义可执行文件
target_exe = Executable(
    script="target.py",
    base="Win32GUI"  # 如果是GUI程序才加,控制台程序可以去掉
)

setup(
    name="YourAppName",
    version="1.0",
    executables=[target_exe],
    options={
        "build_exe": {
            # 包含核心包
            "packages": ["keyring", "keyrings.alt"],
            # 明确包含需要的后端模块(file后端是跨平台通用的,优先选这个)
            "includes": ["keyrings.alt.backends.file"],
            # 如果是Windows系统,还可以加上win32后端增强兼容性
            # "includes": ["keyrings.alt.backends.file", "keyrings.alt.backends.win32"]
        }
    }
)

针对PyInstaller

有两种方式可以确保依赖被打包进去:

方式一:命令行直接指定隐藏导入

打包时用--hidden-import参数手动添加需要的模块:

pyinstaller target.py --hidden-import keyring --hidden-import keyrings.alt --hidden-import keyrings.alt.backends.file

如果是Windows系统,同样可以加上--hidden-import keyrings.alt.backends.win32来增强兼容性。

方式二:修改.spec文件

如果已经生成了.spec文件,直接在hiddenimports列表里添加依赖:

a = Analysis(
    ['target.py'],
    pathex=[],
    binaries=[],
    datas=[],
    hiddenimports=['keyring', 'keyrings.alt', 'keyrings.alt.backends.file'],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=None,
    noarchive=False,
)
# 其他配置...

额外提示

keyrings.alt提供的file后端是跨平台的,会把密钥存储在本地加密文件里,虽然安全性不如系统原生的密钥管理服务,但能保证你的exe在任何系统上都能正常运行。如果是特定平台的程序,可以针对性地添加对应后端(比如Windows的win32、Linux的SecretService等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:37:30