如何在 rpm 构建中包含 pip 包

How to include pip packages in an rpm build

我想在 rpm 包中包含 Python 包依赖项(使用 pip3 install 安装)。我无法使用 dnf 安装,因为它的版本已过时。 rpm returns 如果我使用 pip3 install 安装依赖项会出现以下错误:

error: Failed dependencies python3.6dist(dependency-package)

关于如何在 rpm 中包含 Python 包有什么建议吗?

好的。您的某些包裹需要 python3-somepackagepython3dist(somepackage)。对于 rpm,它只是一个字符串。 Rpm 不关心 python 模块是否已使用 pip 安装。必须有一些包提供该字符串。

你有两个选择。

首选使用 pyp2rpm --srpm somepackage。这将从 PyPI 下载最新版本的模块并生成 src.rpm。然后您可以使用 mock -r epel-8-x86_64 somepackage.src.rpm

构建它

另一种选择是伪造供应。您可以使用 pip 安装模块,然后 运行: create-fake-rpm --build python3-somepackage 'python3dist(somepackage)'。这将生成文件 fake-python3-somepackage-0-0.noarch.rpm,您可以使用 rpm 安装该文件。然后您可以继续安装您的应用程序。请注意,这是作弊。以后dnf upgrade不会更新这个模块,你得自己处理。