FindPythonInterp

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

自版本 3.12 起已弃用: 请改用 FindPython3FindPython2FindPython

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

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

注意

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

注意

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

结果变量

此模块定义了以下变量

PythonInterp_FOUND

3.3 版本中新增。

布尔值,指示是否找到了(请求版本)的 Python 可执行文件。

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 时应考虑的版本号列表。

已弃用变量

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

PYTHONINTERP_FOUND

自版本 3.12 起已弃用: 请使用 PythonInterp_FOUND,其值相同。

布尔值,指示是否找到了(请求版本)的 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)