meson-python¶
一个利用 Meson 构建系统的 Python 包构建后端。
meson-python
实现 Python 构建系统钩子,使 Python 构建前端(如 pip
和 build
)能够基于 Meson 构建定义来构建和安装 Python 包。
Meson 的特点是构建定义使用易于阅读的领域特定语言编写,并且构建速度极快。Meson 支持 Windows、macOS、Linux 和其他类 Unix 操作系统,以及所有主要的编译器工具链。它允许编译和链接用多种编程语言编写的代码,包括 C、C++、Cython、D、Fortran、Objective C 和 Rust。它内置的多平台依赖项提供程序与发行版包配合良好,并且能够构建依赖项作为子项目。如果您不熟悉 Meson,我们建议您查看 Meson 教程。
meson-python
继承了 Meson 的优点,因此最适合构建用编译语言编写的扩展模块的 Python 包。 meson-python
适用于小型包以及非常复杂的包,请参见我们的 示例 目录。
要使 pip
或 build
能够为 Meson 项目构建 Python 源代码分发(sdist)或二进制 Python 包(wheel),只需在源代码树的根目录中,与顶层 meson.build
文件并存地添加一个 pyproject.toml
文件,并指定 meson-python
作为 Python 构建后端。
[build-system]
build-backend = 'mesonpy'
requires = ['meson-python']
包名和版本从通过 meson.build
文件中的 project()
函数提供给 Meson 的元数据中提取。可以使用 pyproject.toml
文件的 project
部分中的标准包元数据格式来覆盖和扩展包元数据。
[project]
name = 'example'
version = '1.0.0'
description = 'Example package using the meson-python build backend'
readme = 'README.rst'
license = {file = 'LICENSE.txt'}
authors = [
{name = 'Au Thor', email = '[email protected]'},
]
[project.scripts]
example = 'example.cli:main'
有关 pyproject.toml
文件的详细文档,请参阅 PyPA 文档。有关使用 meson-python
和 Meson 进行 Python 打包的指导,请参阅我们的 教程。