6.5.4. 使用pyproject RPM宏打包Python项目
通过使用CodeReady Linux Builder (CRB)存储库中的pyproject RPM宏,将使用pyproject.toml或setup.py文件的Python项目打包成RPM包。
6.5.4.1. 用于Python打包的pyproject RPM宏 复制链接链接已复制到粘贴板!
通过使用 pyproject RPM 宏将 Python 项目打包成 RPM 包。这些宏与在 setup.py、pyproject.toml 或两者中定义元数据的项目一起工作,并通过标准化协议调用基于标准的构建后端。
许多上游Python项目不再依赖setup.py脚本。相反,它们将项目元数据存储在 pyproject.toml 中,并使用构建后端,例如setuptools、flit-core、hatchling 或 poetry-core。pyproject RPM 宏通过标准化协议调用任何兼容的构建后端,而不是直接调用 setup.py。
pyproject RPM宏尽可能重用上游元数据。例如,他们可以从 pyproject.toml 中的构建系统需求中生成 BuildRequires,而不是在规范文件中手动列出相同的依赖项。
pyproject-rpm-macros 软件包在 CodeReady Linux Builder (CRB) 存储库中提供。%pyproject_buildrequires 宏在程序包生成期间在该程序包上添加生成的 BuildRequires。红帽不支持 CRB 内容。宏会根据需要更新,以遵循新兴的Python封装标准。
使用 pyproject RPM 宏来打包 Python 项目,无论上游项目是在 setup.py 中定义元数据,还是在 pyproject.toml 中定义元数据,抑或两者兼而有之。