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_LIBRARY
Python 库的路径。
PYTHON_INCLUDE_DIR
包含
Python.h
头文件的目录。
提示¶
此模块接受在调用 find_package(PythonLibs)
之前设置以下变量
Python_ADDITIONAL_VERSIONS
此变量可用于指定在查找 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 库。使用现代方法和导入目标(imported target)的等效示例是
find_package(Python COMPONENTS Development)
target_link_libraries(app PRIVATE Python::Python)