Skip to main content

来自 Rust 编程语言 (crates.io) 的 C 级密钥环模块绑定

项目描述

rskeyring(生锈钥匙圈)

一个 C 级的 Rust 密钥环库绑定到 Python ( https://github.com/DK26/pyrust-keyring )。
Rust 库 (crate) 本身是由 hwchen ( https://github.com/hwchen/keyring-rs ) 创建的。

动机

由于目前无法使用pypi.org密钥环库通过 PyInstaller库存储敏感数据,并且由于
该错误 已经存在很长时间了,所以我决定尝试绑定 Rust 编程语言 密钥环库(因为我仍在学习它)到 Python 并且能够成功地做到这一点。keyring.errors.NoKeyringError

在 Windows 10 上成功测试可与 PyInstaller 一起使用。

安装

pip install rskeyring

用法

存储或更新密码

import rskeyring
from getpass import getpass

username = input("Username: ")
password = getpass()

try:
    rskeyring.set_password("service", username, password)
except OSError:
    print(f"Unable to create or update service for {username}."
        f"\nPlease make sure you have the proper permissions")

找回密码

import rskeyring

username = input("Username: ")
try:
    password = rskeyring.get_password("service", username)
    print(password)
except OSError:
    print(f"Unable to get {username}'s password from 'service'")

删除密码

import rskeyring

username = input("Username: ")

try:
    rskeyring.delete_password("service", username)
except OSError:
    print(f"Unable to remove {username} from 'service'")

例外

目前,外部 Rustkerying-rs库不提供任何具体的错误详细信息。
在这个阶段,我们只是抛出一个OSError带有底层 Rust 库本身的错误消息的将军。

  • 例如OSError: Windows Vault Error

单元测试

python -m unittest tests.lib_unittest

手动使用编译库

setuptools_rust应该能够在调用时自动编译和复制 rust库pip install rskeyring

如果您希望手动编译并导入 Rust 库到您的 python 设置,请参考以下注意事项:

编译

为了编译 Rust 代码,您需要拥有rustup工具链。
要安装rustup工具链,请转到https://rustup.rs

在此目录中,执行下一个命令进行编译:
cargo build --release

视窗

将文件复制pyrust-keyring\target\release\rskeyring.dll到您的 Python 项目。确保将其扩展名从 重命名.dll.pyd.

苹果系统

将文件复制pyrust-keyring/target/release/rskeyring.dylib到您的 Python 项目。确保将其扩展名从 重命名.dylib.so.

文档

help(rskeyring)

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

rskeyring-0.1.2.2.tar.gz (5.8 kB 查看哈希

已上传 source

内置分布

rskeyring-0.1.2.2-cp38-cp38-win_amd64.whl (181.6 kB 查看哈希

已上传 cp38