FindPythonLibs¶
3.27 版本变更:此模块仅在策略 CMP0148 未设置为 NEW 时可用。
3.12 版本已弃用:请改用 FindPython3、FindPython2 或 FindPython。
此模块用于查找 Python 安装,并确定其包含目录和库的位置,以及用于链接的 Python 库名称。
注意
同时使用此模块和 FindPythonInterp 模块时,请在 find_package(PythonLibs) 之前调用 find_package(PythonInterp)。这可确保检测到的解释器版本用于指导兼容库的选择,从而获得一致的 PYTHON_LIBRARIES 值。
结果变量¶
此模块定义了以下变量
PythonLibs_FOUND布尔值,指示是否已找到(请求版本的)Python 库。为向后兼容,
PYTHONLIBS_FOUND变量也设置为相同的值。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 时应考虑的版本号列表。
已弃用变量¶
这些变量是为向后兼容性提供的
PYTHON_DEBUG_LIBRARIES2.8.8 版本已弃用:请改用
PYTHON_LIBRARIES。保存调试库路径的结果变量。
PYTHON_INCLUDE_PATH2.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 库。使用现代方法和导入目标(imported target)的等效示例是
find_package(Python COMPONENTS Development)
target_link_libraries(app PRIVATE Python::Python)