FindPythonLibs¶
版本 3.27 中已更改: 此模块仅在策略 CMP0148 未设置为 NEW 时可用。
版本 3.12 中已弃用: 请改用 FindPython3、FindPython2 或 FindPython。
查找 Python 安装并确定其包含目录和库的位置,以及用于链接的 Python 库名称
find_package(PythonLibs [<version>] [...])
注意
同时使用此模块和 FindPythonInterp 模块时,请在 find_package(PythonLibs) 之前调用 find_package(PythonInterp)。这可确保检测到的解释器版本用于指导选择兼容的库,从而获得一致的 PYTHON_LIBRARIES 值。
结果变量¶
此模块定义了以下变量
PythonLibs_FOUND3.3 版本中新增。
布尔值,指示是否找到(请求版本的)Python 库。
PYTHONLIBS_VERSION_STRING找到的 Python 库的版本。
PYTHON_LIBRARIES链接使用 Python 所需的库。
PYTHON_INCLUDE_DIRS使用 Python 所需的包含目录。
缓存变量¶
以下缓存变量也可用于指定要使用的 Python 安装
PYTHON_LIBRARYPython 库的路径。
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_DIR或PYTHON_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)