您尚未登录。

#1 2014-10-23 18:34:49

danielhugo
偶爸刚弄死他
注册时间: 2012-07-31
帖子: 269
个人网站

[已解决]Python3在import keyring后无法操作GNOME Keyring

我用的窗口管理器是 Awesome WM,登录管理器是 SLiM ,已经安装了包 python-keyring 4.0-2,安装的 GNOME 软件包只有这几个:

  • gnome-icon-theme

  • gnome-icon-theme-symbolic

  • gnome-keyring

  • libgnome-keyring

  • libsoup

  • python-gobject

  • seahorse

并且已经按照 Arch Wiki 的指示设置了 PAM 配置文件和 .xinitrc 文件。(我的 .xinitrc)

使用 SLiM 登录以后马上打开 htop ,可以清楚地看到一个 gnome-keyring-daemon 进程,然后打开 seahorse (GNOME Keyring 的图形界面管理器),一个叫 Login 的密钥环(已经是默认的密钥环)是解锁了的。

这时候 GNOME Keyring 密钥环应该算是解开了的。参考 https://wiki.gnome.org/Projects/GnomeKeyring/Pam

此时打开终端,执行以下命令得到输出:

$ python

Python 3.4.2 (default, Oct  8 2014, 13:44:52) 
[GCC 4.9.1 20140903 (prerelease)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import keyring
>>> print(keyring)
<module 'keyring' from '/usr/lib/python3.4/site-packages/keyring/__init__.py'>
>>> print(keyring.get_keyring())
<keyring.backends.file.EncryptedKeyring object at 0x7ff0189e83c8>
>>> keyring.set_password('test_server', 'test_user', 'test_password')
Please set a password for your new keyring:
Please confirm the password:

完了打开 seahorse ,没有发现有添加任何条目。在 ~/.local/share/python_keyring/crypted_pass.cfg 发现了如下条目:

[test_5Fserver]
test_5fuser = (一堆加密后的乱码)

这表明 Python 操作 GNOME Keyring 不成功。

=========================================

期待的输出应该是这样的:

>>> print(keyring.get_keyring())
<keyring.backends.Gnome.Keyring object at xxxxxxxx>
>>> keyring.set_password('test_server', 'test_user', 'test_password')
>>>

然后打开 seahorse ,应该在 Login 密钥环里有类似下图的新记录:
1180a948-53bb-11e4-92ee-e8e03255a56e.png

现在问题来了:究竟我在哪个地方出现了问题?该怎么解决? mad sad

求大神解答! @百合仙子 @众大神

最近编辑记录 danielhugo (2014-11-10 20:50:24)


本人的 Arch Linux 软件仓库:http://git.io/-1
本人的广告过滤及代·理规则订阅页面:http://git.io/f0x

离线

页脚