Python的替代动态RPM绑定
项目描述
rpmdyn
Python的替代动态RPM绑定。
概述
rpmdyn
通过动态绑定(FFI)提供了一种使用Python中的rpm
库的替代方法。
该项目旨在支持基于rpm
库的Python代码在CI或开发环境中的测试,在这些环境中安装官方绑定太麻烦了。如果您尝试过rpm-py-installer
并且遇到问题,您可能会发现它很有用。
⚠️重要注意事项⚠️:提供的RPM绑定远未完整!绑定是根据作者的需求“按需”实现的。
以下是几种访问RPM Python绑定方法的比较,以帮助您了解该项目是否可能对您有用
操作系统包 | rpmdyn |
rpm-py-installer |
|
---|---|---|---|
可以从PyPI通过pip安装吗? | ❌ | ✅ | ✅ |
在virtualenv中可用? | ❌¹ | ✅ | ✅ |
支持多个Python版本? | ❌² | ✅ | ✅ |
不需要编译器/头文件? | ✅ | ✅ | ❌³ |
安全的供应链? | ✅ | ✅ | ❌⁴ |
完整的绑定? | ✅ | ❌⁵ | ✅ |
- 只有您启用系统site-packages时才能使用,这在一般情况下是不可接受的。
- 虽然关于Linux发行版提供的包的类型没有硬性规定,但通常一个发行版会选择一个主要的支持的Python版本,并只为该版本提供库。
rpm-py-installer
通过编译RPM绑定来工作,因此需要编译器。rpm-py-installer
不安全地下载RPM源代码,不验证校验和或签名。如果你只想使用所有依赖项的已知版本,这会成为一个问题,在防火墙设置(例如,只允许访问内部PyPI注册表)下将完全无法工作。rpmdyn
仅实现了RPM绑定的一小部分,因为绑定需要手动实现。可用的绑定集合反映了rpmdyn
贡献者的需求。
用法
安装rpmdyn
后,它将默认自动使用。
- 如果实际(原生)RPM绑定可用,则
import rpm
将使用这些绑定。 - 否则,
import rpm
将使用rpmdyn
。
这是通过PTH钩实现的。如果你希望禁用此行为,请将环境变量RPMDYN_HOOK
设置为0
。
许可证
本程序是免费软件:你可以在自由软件基金会发布的GNU通用公共许可证的条款下重新分发和/或修改它,许可证版本为3,或(根据你的选择)任何后续版本。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
rpmdyn-2024.9.tar.gz (55.3 kB 查看哈希)
构建分布
rpmdyn-2024.9-py3-none-any.whl (36.9 kB 查看哈希)
关闭
rpmdyn-2024.9.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9f7c3fd668a2734c07d3234290ceb468065d9eebf38871d861a3e797f4d5b4c3 |
|
MD5 | a506ee9eaa08ea263e6d950c726c445f |
|
BLAKE2b-256 | 31fce3a48e5700592232bec9dcd48fde7edbb91311562d41a8d05c43391b3385 |
关闭
rpmdyn-2024.9-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f3cd68f13e225a1f3a5472960797807bb441be6808356b7e7a678ce4f8353e79 |
|
MD5 | f598d656a6d4197080872b65c326dea1 |
|
BLAKE2b-256 | 0508e0664a261c367dcc74ff55a3bcfe62c5157a7f883bf15997f573d7d7140d |