您如何配置 Python 密钥环以从 Windows 7 上的 Windows 凭据管理器提取凭据?

How do you Configure Python Keyring to pull credentials from Windows Credential Manager on Windows 7?

我花了很多时间研究密钥环包,试图让一个简单的例子起作用。我在 windows 7-x64 机器上使用 python 2.7。我已经安装了软件包并确认文件在我的 Lib/site-packages 文件夹中。

在安装文档中的这段代码片段中应该包含什么 "system"?

import keyring
keyring.get_password("system", "username")

当我 运行 代码时,出现以下错误:

RuntimeError: No recommended backend was available. Install the keyrings.alt package if you want to use the non-recommended backends.

它似乎没有将 Windows 识别为后端。我觉得我错过了一个简单的步骤。感谢任何帮助,包括从 Windows 凭据管理器中提取通用凭据的简单代码示例。

我不知道你是否可以这样做,但你可以要求用户使用以下命令提供凭据

import admin
if not admin.isUserAdmin():
    admin.runAsAdmin()

您可能需要安装 pywin32 软件包。这样做解决了我的问题。

使用conda:
conda install -e environment_name_here pywin32

使用pip
pip install pywin32

切线:由于某种原因,代码吞下了 windows 凭证管理器 class 本来会抛出的异常以提醒您注意此问题。 Here's the exception and here's where it's caught and thrown away.

终于成功了。 Shaun 提供的信息为我指明了安装 pywin32 的正确方向。从那里开始,我通过在 Windows 凭据管理器中创建测试凭据并测试 Python 密钥环功能进行了反复试验。

我只得到它与通用凭据一起使用,这对我的目的来说很好。我将 Internet 或网络地址设置为 "test"。用户名设置为 "test_user"。密码设置为 "test123"。 (此处引用的引号用于说明,输入时不要引用。

print keyring.get_password("test","test_user") 

返回结果"test123"

希望此信息对其他人有所帮助。感谢 Shaun 提供解决此问题所需的指导。