标签:python windows 32-bit pyinstaller python-keyring
我有以下python测试代码:
import keyring
print(keyring.get_keyring())
keyring.set_password("a","b","c")
print(keyring.get_password("a","b"))
如果我使用32位python或64位python运行此代码,我将获得以下输出(如预期的那样):
<keyring.backends.Windows.WinVaultKeyring object at 0x00000187B7DD6358>
c
我的目的是构建两个独立的可执行文件(32位和64位):为了实现我使用pyinstaller和以下命令(test.py是包含上面显示的python代码的文件的名称)
pyinstaller --onefile test.py
如果我运行64位exe,我获得以下输出(如预期的那样):
<keyring.backends.Windows.WinVaultKeyring object at 0x00000187B7DD6358>
c
相反,如果我运行32位exe,我获得以下输出:
<keyring.backends.fail.Keyring object at 0x05463ED0>
Traceback (most recent call last):
File "test.py", line 3, in <module>
keyring.set_password("a","b","c")
File "site-packages\keyring\core.py", line 47, in set_password
File "site-packages\keyring\backends\fail.py", line 23, in get_password
RuntimeError: No recommended backend was available. Install the keyrings.alt package if you want to use the non-recommended backends. See README.rst for details.
[2732] Failed to execute script test
有谁知道发生了什么?
谢谢,
丹尼尔
解决方法:
使用备用密钥环后端解决.如果我更改我的代码:
import keyring
print(keyring.get_keyring())
keyring.set_password("a","b","c")
print(keyring.get_password("a","b"))
至:
import keyring
from keyrings.alt import Windows
keyring.set_keyring(Windows.RegistryKeyring())
print(keyring.get_keyring())
keyring.set_password("a","b","c")
print(keyring.get_password("a","b"))
有用.
标签:python,windows,32-bit,pyinstaller,python-keyring 来源: https://codeday.me/bug/20190705/1388544.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。