环境变量

环境变量可用于影响 meson-python 的行为,以及在构建期间可能使用的 Meson 和其他工具的行为。此页面列出了 meson-python 直接使用的所有环境变量。

Meson 建议使用命令行参数而不是环境变量,但为了与其他构建系统兼容,它支持一些环境变量。

其他环境变量可能会影响设置或构建步骤中使用的其他工具的操作方式。例如,pkg-config 支持 PKG_CONFIG_PATH,它会影响 .pc 文件的搜索路径,这些文件描述了可用的依赖项。

警告

当编译器安装在 conda 环境中时,Conda 会在环境激活期间设置一些环境变量,用于编译器/链接器选择 (CCCXXFCLD) 和编译/链接标志 (CFLAGSCXXFLAGSFFLAGSLDFLAGS)。这可能会产生意想不到的副作用(例如,请参见 使用调试构建 中的说明)。

meson-python 使用的环境变量

ARCHFLAGS

此环境变量用于以与 setuptools 兼容的方式支持 macOS 上的体系结构交叉编译。它在所有其他平台上都会被忽略。它可以设置为 -arch arm64-arch x86_64,分别用于为 arm64 和 x86_64 体系结构编译。将此环境变量设置为任何其他值都不受支持。

macOS 工具链允许通过将 -arch 标志传递给编译器来进行体系结构交叉编译。 meson-python 会检查此环境变量的内容,并使用适当的内容合成一个 Meson 交叉构建定义文件,并通过 --cross-file 选项将其传递给 meson setup

仅为了与现有工具(特别是 cibuildwheel)的兼容性才维护对此环境变量的支持,它不是跨编译的推荐解决方案。

FORCE_COLOR

将此环境变量设置为任何值都会强制使用 ANSI 转义序列来为 meson-python 的控制台输出着色。设置 NO_COLORFORCE_COLOR 两个环境变量是一个错误。

MACOSX_DEPLOYMENT_TARGET

此环境变量用于将目标 macOS 平台主版本指定给 Xcode 开发工具。如果设置了此环境变量,meson-python 将使用指定的 macOS 版本作为 Python wheel 平台标签,而不是构建机器的 macOS 版本。

此变量必须设置为仅包含 macOS 主版本:10.910.15111213、…

请注意,从 macOS 11 开始,macOS 版本号发生了变化。对于 macOS 10,版本号方案是 10.$major.$minor。从 macOS 11 开始,它是 $major.$minor.$bugfix。wheel 标签和部署目标当前设计为仅指定与主要版本号粒度的兼容性。

另一种指定目标 macOS 平台的方法是使用 -mmacosx-version-min 编译和链接标志。但是,meson-python 无法检测到这一点,它也不会相应地设置 Python wheel 平台标签。

MESON

指定要使用的 meson 可执行文件或脚本。它会覆盖 tool.meson-python.meson。有关更多详细信息,请参见 项目设置

MESONPY_EDITABLE_VERBOSE

将此环境变量设置为任何值都会启用将由 meson-python 生成的可编辑 wheel 的导入触发的项目重建期间发出的消息定向到控制台。有关更多信息,请参阅 可编辑安装 指南。

NINJA

指定要使用的 ninja 可执行文件。它也可以用于选择 ninja 的替代方案,如 samurai

NO_COLOR

将此环境变量设置为任何值都会禁用使用 ANSI 终端转义序列来为 meson-python 的控制台输出着色。设置 NO_COLORFORCE_COLOR 两个环境变量是一个错误。