FindPythonInterp

3.27 版本中的更改: 仅当策略 CMP0148 未设置为 NEW 时,此模块才可用。

3.12 版本已弃用: 请改用 FindPython3FindPython2FindPython

此模块查找 Python 解释器并确定其可执行文件的位置。

注意

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

注意

为 Python 版本 V 调用 find_package(PythonInterp ${V}) 可能会找到一个没有版本后缀的 python 可执行文件。在这种情况下,不会尝试避免使用其他版本的 Python 可执行文件。请改用 FindPython3FindPython2FindPython

结果变量

此模块定义了以下变量

PythonInterp_FOUND

一个布尔值,指示是否找到(请求版本)的 Python 可执行文件。为了向后兼容,PYTHONINTERP_FOUND 变量也设置为相同的值。

PYTHON_VERSION_STRING

找到的 Python 版本(例如 2.5.2)。

PYTHON_VERSION_MAJOR

找到的 Python 主版本(例如 2)。

PYTHON_VERSION_MINOR

找到的 Python 次版本(例如 5)。

PYTHON_VERSION_PATCH

找到的 Python 补丁版本(例如 2)。

缓存变量

以下缓存变量也可以设置

PYTHON_EXECUTABLE

Python 解释器的路径。

提示

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

Python_ADDITIONAL_VERSIONS

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

示例

查找 CMake 早期版本中的 Python 解释器

find_package(PythonInterp)
execute_process(COMMAND ${PYTHON_EXECUTABLE} --help)

从 CMake 3.12 开始,可以使用 FindPython 模块查找 Python 解释器。使用现代方法的等效示例是

find_package(Python)
execute_process(COMMAND ${Python_EXECUTABLE} --help)