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 透過 meson.build
檔案中的 project()
函數提供的元資料中提取的。可以使用 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 = 'author@example.com'},
]
[project.scripts]
example = 'example.cli:main'
有關 pyproject.toml
檔案的詳細說明,請參閱 PyPA 文件。有關使用 meson-python
和 Meson 進行 Python 打包的指南,請參閱我們的 教學。