FindPythonLibs

版本 3.27 中已更改: 此模块仅在策略 CMP0148 未设置为 NEW 时可用。

版本 3.12 中已弃用: 请改用 FindPython3FindPython2FindPython

查找 Python 安装并确定其包含目录和库的位置,以及用于链接的 Python 库名称

find_package(PythonLibs [<version>] [...])

注意

同时使用此模块和 FindPythonInterp 模块时,请在 find_package(PythonLibs) 之前调用 find_package(PythonInterp)。这可确保检测到的解释器版本用于指导选择兼容的库,从而获得一致的 PYTHON_LIBRARIES 值。

结果变量

此模块定义了以下变量

PythonLibs_FOUND

3.3 版本中新增。

布尔值,指示是否找到(请求版本的)Python 库。

PYTHONLIBS_VERSION_STRING

找到的 Python 库的版本。

PYTHON_LIBRARIES

链接使用 Python 所需的库。

PYTHON_INCLUDE_DIRS

使用 Python 所需的包含目录。

缓存变量

以下缓存变量也可用于指定要使用的 Python 安装

PYTHON_LIBRARY

Python 库的路径。

PYTHON_INCLUDE_DIR

包含 Python.h 头文件的目录。

提示

此模块在调用 find_package(PythonLibs) 之前接受以下变量

Python_ADDITIONAL_VERSIONS

此变量可用于指定在搜索 Python 时应考虑的版本号列表。

已弃用变量

以下变量提供用于向后兼容性

PYTHONLIBS_FOUND

版本 3.12 中已弃用: 请改用 PythonLibs_FOUND,其值相同。

布尔值,指示是否找到(请求版本的)Python 库。

PYTHON_DEBUG_LIBRARIES

版本 2.8.8 中已弃用: 请改用 PYTHON_LIBRARIES

结果变量,其中包含调试库的路径。

PYTHON_INCLUDE_PATH

版本 2.8.0 中已弃用: 请改用 PYTHON_INCLUDE_DIRPYTHON_INCLUDE_DIRS

结果变量,其中包含包含 Python.h 头文件的目录的路径。

示例

在早期版本的 CMake 中,Python 库的查找和使用方式如下

find_package(PythonLibs)
target_link_libraries(app PRIVATE ${PYTHON_LIBRARIES})
target_include_directories(app PRIVATE ${PYTHON_INCLUDE_DIRS})

从 CMake 3.12 开始,可以使用 FindPython 模块查找 Python 库。使用具有导入目标的现代方法的等效示例是

find_package(Python COMPONENTS Development)
target_link_libraries(app PRIVATE Python::Python)