【问题标题】:RuntimeError: No recommended backend was available. (Keyring w/ Python)RuntimeError:没有推荐的后端可用。 (带 Python 的钥匙圈)
【发布时间】:2019-06-26 19:33:45
【问题描述】:

我有一个程序,它使用 Yagmail 和密钥环包来安全地存储电子邮件凭据。当我在 atom.io 中运行此脚本并闲置时,它可以工作。

但是,在我用 pyinstaller 打包后,它给了我这样的消息:

RuntimeError: No recommended backend was available. Install a recommended 3rd party backend package; or, install the keyrings.alt package if you want to use the non-recommended backends. See https://pypi.org/project/keyring for details.

在我的程序中,我有

import keyring

我也安装了keyring.alt

【问题讨论】:

  • 您使用的是哪个操作系统?
  • @M.R.我有 Windows 10

标签: python pyinstaller python-keyring


【解决方案1】:

由于我无法添加 cmets,我将在答案块中添加我的输入。希望这会有所帮助。

我也有类似的问题,我使用密钥环模块将密码存储在我的 python 脚本中,并使用 pyinstaller 打包它。当我直接运行它时,我的脚本运行完美。但是当我尝试运行 python exe 时,我得到了与下面相同的错误

“RuntimeError: 没有推荐的后端可用。安装推荐的 3rd 方后端包;或者,如果您想使用非推荐的后端,请安装 keyrings.alt 包。有关详细信息,请参阅https://pypi.org/project/keyring。”

我用谷歌搜索了这个错误,发现下面的链接(这可能没有直接关系,但有人给出了解决方法)。我按照链接中的建议添加了解决方法(您也得到了正在使用的密钥环后端)并且它有效。

链接:https://github.com/jaraco/keyring/issues/359 查找您正在使用的密钥环后端的代码

from keyring import get_keyring
get_keyring()

如上所述,您可以在脚本中的某处添加块,然后 exe 文件将完美运行。

【讨论】:

    【解决方案2】:

    根据@Rena76 的回答,这是我所做的:

    1. 为了获取用于存储密码的默认“方法”,我从 keyring 导入了 get_keyring 并执行了上述函数。

      from keyring import get_keyring
      print("Keyring method: " + str(get_keyring()))
      
    2. 检索到的方法是“keyring.backends.chainer.ChainerBackend”,它在脚本上工作正常,但在导出到 .exe 文件时不能正常工作。因此,鉴于我使用的是 Windows,我将 'keyring.backends.Windows.WinVaultKeyring' 设置为我的方法。

      keyring.core.set_keyring(keyring.core.load_keyring('keyring.backends.Windows.WinVaultKeyring'))
      
    3. 最后,为了能够将凭据保存在 Windows Vault 中,我将导入 win32 库。

      import win32api, win32, win32timezone
      

    现在我可以成功执行 Keyring 功能,例如:

       keyring.set_password(service_name='<service>', username='<username>', password='<password>')
    

    【讨论】:

      猜你喜欢
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-28
      • 1970-01-01
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多