为非系统Python安装rpm模块

7 投票
3 回答
14384 浏览
提问于 2025-04-17 19:06

我需要支持一些使用旧版Python(2.4)的软件。所以我下载并编译了Python 2.4,并把它安装在一个虚拟环境中。到目前为止,一切正常,流程也很正常。

但是这个软件试图导入一个叫做rpm的模块。我找不到这个模块的来源(据我所知,它不是标准Python库的一部分)。

通常,一旦虚拟环境被启用(通过source env/bin/activate),我就可以使用easy_install来安装所需的软件。但是easy_install rpm找不到任何东西。虽然有一个pyrpm模块,但那不是同一个东西(它安装的是一个叫“pyrpm”的模块)。而且谷歌搜索也没用,因为结果都是关于如何构建rpm的文章……

如果我使用的是系统自带的Python(在Ubuntu上),我可以安装python-rpm包。但那是针对Python 2.7的。我该如何为Python 2.4安装相应的模块呢?

[我觉得很多Linux系统使用的rpm库里包含一个Python库,这个库被打包成python-dev由发行版提供。但我不知道如何在任意Python版本中访问它。]

我并不是在寻找一个包含Python 2.4的rpm。我是在寻找一个名为rpm的模块,它是为Python 2.4编写的软件所使用的。

3 个回答

1

你可以在这里找到rpm模块的源代码:http://www.rpm.org/wiki/Download

下载你想要的版本后,记得查看并按照INSTALL说明进行操作,这样才能在你目标操作系统上编译它。之后,确保把安装过程中选择的'site-packages'文件夹的正确路径添加到你的PYTHONPATH环境变量中。

要测试一下,可以启动你的python解释器,然后运行'import rpm'。

希望这对你有帮助,

Ran

1

在这里,你可以找到python-rpm这个RPM包:

http://rpmfind.net/linux/rpm2html/search.php?query=python-rpm

你可能需要下载这个包的内容,解压缩它,然后在你的环境中使用:

python setup.py install 

当然,因为这个包是预先编译好的,你可能会遇到让C扩展运行的问题。

我对RPM不太熟悉,不确定你是否能从那里获取源代码。


不过,不能保证这个包能与你的python版本兼容。

1

这件事没有简单的方法;因为这个Python库是系统的rpm包的一部分,并且和C语言代码有关系,所以它和你电脑上安装的rpm包紧密相连。

相反,安装一个旧的操作系统在虚拟机里(比如CentOS 5),它使用的是Python 2.4,这样就简单多了。这样一来,所有东西都是一致的,能正常工作。

撰写回答