我正在重构从python2(RHEL7.6)到python3(RHEL8.2)的代码,而且在python3.6中缺少库也有问题。
问题:
from rpmUtils.miscutils import splitFilename ModuleNotFoundError: No module named 'rpmUtils'
我尝试过将python3-dnf和python3-rpm软件包安装到RHEL8上,但仍然无法工作。有什么解决方案如何在python3.6和RHEL8中使用这个库,还是应该自己编写一些自定义函数?
谢谢你的回答。
发布于 2022-01-13 13:04:43
这个库确实被删除了,但是您可以使用其他几个选项。
请注意,这些其他函数期望以NEVRA (名称、时代、版本、版本、体系结构)格式接收字符串作为输入,而不是文件名。因此,您必须删除文件名的'.rpm‘扩展,以获得一个NVRA字符串(通常不包括在RPM包的文件名中)。
所以基本上你有两个选择:
按https://bugzilla.redhat.com/show_bug.cgi?id=1364504中的建议使用dnf的
导入hawkey rpm_base_filename = os.path.basename(rpm_file) nevra = nevra.name 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
https://stackoverflow.com/questions/64138270
复制相似问题