【问题标题】:Installing rpm module for (non-system) Python为(非系统)Python 安装 rpm 模块
【发布时间】:2013-03-14 14:47:32
【问题描述】:

我需要支持一些使用旧 Python 版本 (2.4) 的软件。所以我已经下载并编译了 Python 2.4 并将其安装在 virtualenv 中。至此,一切OK,程序正常。

但软件正在尝试导入rpm 模块。而且我找不到该模块的源代码(它不是标准 Python 库的一部分,afaict)。

通常,一旦启用 virtualenv (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 编写的软件使用。

【问题讨论】:

  • 从源代码编译而不是安装 rpm 怎么样?
  • 当然,但是来源在哪里? “安装 rpm”是什么意思?你误解了q吗? easy_install 从源安装,基本上。
  • 所以您没有阅读我的问题的第一段?我已经安装了。它不包含 rpm 模块。
  • 我误读了这个问题。这是 RPM 源代码 (rpm.org/wiki/Download),仍在查找哪个版本是正确的。

标签: python rpm


【解决方案1】:

它就在那里,在 python-rpm RPM 包中:

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

您可能需要下载包内容,解压它们,然后使用

python setup.py install 

来自您的活动环境。

当然,由于它是预编译的,您可能无法运行 C 扩展。

我对 RPM 不够熟悉,不知道您是否可以从那里获得源代码。


但不保证该包将适用于您的 python 版本。

【讨论】:

  • @andrewcooke 您可以从更改日志中获取电子邮件地址,并向维护人员询问方向。某处可能存在版本控制下的源代码!
【解决方案2】:

没有简单的方法可以做到这一点; python 库是系统 rpm 包和 C 代码接口的一部分,因此与您机器上安装的 rpm 包密切相关。

相反,在使用 Python 2.4 的 VM(例如 CentOS 5)中安装旧操作系统要简单得多。那么一切都是一致的并且有效。

【讨论】:

    【解决方案3】:

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

    下载所需版本后,请阅读并按照安装说明在目标操作系统上进行编译。然后确保将安装选择的“site-packages”文件夹的正确路径添加到 PYTHONPATH 环境变量中。

    测试启动你的python解释器并运行'import rpm'

    HTH,

    【讨论】:

    • 安装 everything - 你得到 rpm 包和 python 包装器。它不会给你一个已经存在的系统 rpm 包的包装器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    相关资源
    最近更新 更多