7

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

在安装文档的这段代码片段中,“系统”中应该包含什么?

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

当我运行代码时,我收到以下错误:

RuntimeError:没有推荐的后端可用。如果要使用不推荐的后端,请安装 keyrings.alt 包。

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

4

3 回答 3

13

终于得到了这个工作。来自 Shaun 的信息为我指明了安装的正确方向pywin32。从那里我在 Windows 凭据管理器中创建测试凭据并测试 Python 密钥环功能进行了反复试验。

我只让它与通用凭证一起工作,这对我的目的来说很好。我将 Internet 或网络地址设置为"test". 用户名设置为"test_user"。密码设置为"test123"。(此处包含用于说明的引号,输入时请勿包含。

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

返回结果"test123"

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

于 2017-12-11T23:03:25.037 回答
7

您可能必须安装该pywin32软件包。这样做为我解决了这个问题。

使用conda
conda install -e environment_name_here pywin32

使用pip
pip install pywin32

切线:由于某种原因,代码吞下了 Windows 凭据管理器类本来会抛出的异常,以提醒您注意此问题。 这是例外这里是它被捕获和丢弃的地方

于 2017-11-28T00:17:27.170 回答
0

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

import admin
if not admin.isUserAdmin():
    admin.runAsAdmin()
于 2017-06-20T06:01:24.713 回答