用Rust编程语言实现的Clevel keyring模块绑定(板条箱.io)
rskeyring的Python项目详细描述
rskeyring(生锈键环)
C级的Rust keyring库绑定到Python(https://github.com/DK26/pyrust-keyring)。
Rust库(crate)本身是由hwchen(https://github.com/hwchen/keyring-rs)创建的。在
动机
因为使用了pypi.org网站使用PyInstaller库存储敏感数据的keyring库
由于错误keyring.errors.NoKeyringError
和
这种情况已经有很长一段时间了,我决定尝试绑定Rust编程语言
keyring库(我还在学习)到Python,并且能够成功地做到这一点。在
已在Windows 10上成功测试以与PyInstaller配合使用。在
安装
pip install rskeyring
使用
存储或更新密码
importrskeyringfromgetpassimportgetpassusername=input("Username: ")password=getpass()try:rskeyring.set_password("service",username,password)exceptOSError:print(f"Unable to create or update service for {username}."f"\nPlease make sure you have the proper permissions")
检索密码
^{pr2}$删除密码
importrskeyringusername=input("Username: ")try:rskeyring.delete_password("service",username)exceptOSError:print(f"Unable to remove {username} from 'service'")
例外情况
目前,external Rustkerying-rs
库没有提供任何具体的错误详细信息。
在这个阶段,我们只需抛出一个通用的OSError
,其中包含一个由底层Rust库本身产生的错误消息。在
- e、 g.
OSError: Windows Vault Error
单元测试
python -m unittest tests.lib_unittest
人工使用编译库
setuptools_rust
应该能够在调用pip install rskeyring
时自动编译和复制rust库。在
如果要手动编译Rust库并将其导入python设置,请参阅以下注释:
编译
为了编译Rust代码,您需要有rustup
工具链。
要安装rustup
工具链,请转到https://rustup.rs
在这个目录中,执行下一个命令来编译:cargo build --release
Windows
将文件pyrust-keyring\target\release\rskeyring.dll
复制到Python项目中。确保将其扩展名从.dll
重命名为.pyd
。在
MacOS
将文件pyrust-keyring/target/release/rskeyring.dylib
复制到Python项目中。确保将其扩展名从.dylib
重命名为.so
。在
文件
help(rskeyring)
- 项目
标签: