rpmUtils.miscutils 在 python3.6
rpmUtils.miscutils in python3.6
我正在将代码从 python2(RHEL 7.6) 重构为 python3(RHEL 8.2),但我遇到 python3.6.
中缺少库的问题
问题:
from rpmUtils.miscutils import splitFilename ModuleNotFoundError: No module named 'rpmUtils'
我已尝试将 python3-dnf 和 python3-rpm 软件包安装到 RHEL8,但仍然无法正常工作。在 python3.6 和 RHEL8 中如何使用这个库有任何解决方案还是我应该自己编写一些自定义函数?
感谢您的回答。
这个库确实被删除了,但您还有其他几个选项可以使用。
请注意,这些其他函数需要接收 NEVRA(名称、纪元、版本、发行版、体系结构)格式的字符串作为输入,而不是文件名。因此,您必须删除文件名的“.rpm”扩展名,以便获得 NVRA 字符串(纪元通常不包含在 RPM 包的文件名中)。
所以基本上你有两个选择:
- 中的建议使用 dnf
使用 hawkey 即:
import hawkey
rpm_base_filename = os.path.basename(rpm_file)
nevra = hawkey.split_nevra(rpm_base_filename[:-len(".rpm")])
name = nevra.name
version = nevra.version
release = str(nevra.release)
epoch = str(nevra.epoch)
arch = nevra.arch
例如,这是我为我们在 oVirt 发布过程中使用的工具之一所做的此类修改的补丁:
https://github.com/oVirt/releng-tools/commit/823405e6b261f7ff27ddbba0e8fa2b86dd2a8698
我正在将代码从 python2(RHEL 7.6) 重构为 python3(RHEL 8.2),但我遇到 python3.6.
中缺少库的问题问题:
from rpmUtils.miscutils import splitFilename ModuleNotFoundError: No module named 'rpmUtils'
我已尝试将 python3-dnf 和 python3-rpm 软件包安装到 RHEL8,但仍然无法正常工作。在 python3.6 和 RHEL8 中如何使用这个库有任何解决方案还是我应该自己编写一些自定义函数?
感谢您的回答。
这个库确实被删除了,但您还有其他几个选项可以使用。
请注意,这些其他函数需要接收 NEVRA(名称、纪元、版本、发行版、体系结构)格式的字符串作为输入,而不是文件名。因此,您必须删除文件名的“.rpm”扩展名,以便获得 NVRA 字符串(纪元通常不包含在 RPM 包的文件名中)。
所以基本上你有两个选择:
- 中的建议使用 dnf
使用 hawkey 即:
import hawkey rpm_base_filename = os.path.basename(rpm_file) nevra = hawkey.split_nevra(rpm_base_filename[:-len(".rpm")]) name = nevra.name version = nevra.version release = str(nevra.release) epoch = str(nevra.epoch) arch = nevra.arch
例如,这是我为我们在 oVirt 发布过程中使用的工具之一所做的此类修改的补丁:
https://github.com/oVirt/releng-tools/commit/823405e6b261f7ff27ddbba0e8fa2b86dd2a8698