使用调试版本

对于 Python 包中本机代码的开发工作,您可能希望使用调试版本。为此,我们需要传递 -Dbuildtype=debug 选项,它等效于 -Ddebug=true -Doptimization=0,给 meson setup。此外,使用固定构建目录的编辑安装可能最有用。这样,安装的调试版本中的共享库将包含正确的路径,而不是指向临时构建目录的路径,否则 meson-python 会使用。然后,IDE 和其他工具将能够在调试期间显示正确的文件位置和行号。

我们可以使用以下 pip 调用完成所有操作

$ pip install -e . --no-build-isolation \
    -Csetup-args=-Dbuildtype=debug \
    -Cbuild-dir=build-dbg

您的包的这个调试版本将与您的 Python 解释器的常规版本或调试版本一起使用。调试 Python 解释器不是必需的,但可能有用。它可以从源代码构建,或者您可以从您选择的软件包管理器中获取(通常在类似于 python-dbg 的软件包名称下)。请注意,使用调试 Python 解释器不会生成您自己的包的调试版本 - 您必须使用 -Dbuildtype=debug 或等效标志。

警告

在 Conda 环境中,环境变量(如 CFLAGSCXXFLAGS)通常在激活环境时设置。这些环境变量包含优化标志,例如 -O2,它们将覆盖由 -Dbuildtype=debug 隐含的优化级别。为了避免这种情况,请取消设置这些变量

$ unset CFLAGS
$ unset CXXFLAGS

最后,请注意,将构建类型从其默认值 release 更改为 debug 也会导致 meson-python 通过不定义 NDEBUG 宏来启用(或者更确切地说,不禁用)断言(参见 默认构建选项 中的 b_ndebug)。