为非系统Python安装rpm模块
我需要支持一些使用旧版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 个回答
你可以在这里找到rpm模块的源代码:http://www.rpm.org/wiki/Download
下载你想要的版本后,记得查看并按照INSTALL说明进行操作,这样才能在你目标操作系统上编译它。之后,确保把安装过程中选择的'site-packages'文件夹的正确路径添加到你的PYTHONPATH环境变量中。
要测试一下,可以启动你的python解释器,然后运行'import rpm'。
希望这对你有帮助,
Ran
在这里,你可以找到python-rpm这个RPM包:
http://rpmfind.net/linux/rpm2html/search.php?query=python-rpm
你可能需要下载这个包的内容,解压缩它,然后在你的环境中使用:
python setup.py install
当然,因为这个包是预先编译好的,你可能会遇到让C扩展运行的问题。
我对RPM不太熟悉,不确定你是否能从那里获取源代码。
不过,不能保证这个包能与你的python版本兼容。
这件事没有简单的方法;因为这个Python库是系统的rpm包的一部分,并且和C语言代码有关系,所以它和你电脑上安装的rpm包紧密相连。
相反,安装一个旧的操作系统在虚拟机里(比如CentOS 5),它使用的是Python 2.4,这样就简单多了。这样一来,所有东西都是一致的,能正常工作。