用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)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java传递实现接口的内部类   java为什么managedbean方法在post请求中的过滤器调用之前调用   java Android应用程序在Android M,O上崩溃,登录A/libc时出错:tid 17938中的致命信号11(SIGSEGV),代码2,故障地址0x343a2944   java JPA存储库。findByAll()返回null,但数据库中存在所有内容   用于发送电子邮件的java Ant脚本   Java小程序HTML页面发生了奇怪的事情   在Postman的请求正文中传递多个JSON数据,并使用Jersy(JXRS)进入Java Rest API   无法强制转换java DAO类   10分钟后重新连接java   正则表达式如何在java中选择字符串直到某个字符   java我的输出有一些问题   Objective中的java时间段   java如何在新屏幕上基于按钮单击在webview中打开url   java哪个selenium版本与Firefox ESR 45.2.0兼容   java无法使用Apache Camel 3.1.0将XML转换为JSON