检测python解释器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
project(wang5)

#找到python解释器
find_package(PythonInterp REQUIRED)

#执行python命令并捕获它的输出和返回值
execute_process(COMMAND ${PYTHON_EXECUTABLE} "-c" "print('wangyuedong')"
RESULT_VARIABLE _status
OUTPUT_VARIABLE _output
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE
)

#将输出打印到屏幕
message(STATUS "RESULT_VARIABLE is: ${_status}")
message(STATUS "OUTPUT_VARIABLE is: ${_output}")

检测python库

以上使用python解释器来操作程序的输出,然后可以更高级一点,将解释语言python和编译语言C++组合到一起使用。有两种做法,第一种是扩展python,通过编译成共享库的C和C++模块提供新类型和方法。第二种是将python解释器嵌入到C和C++的程序中。两种方式都需要一些条件才可以实现。

  • Python解释器的工作版本;
  • Python头文件python.h可用;
  • Python运行时库libpython。

这三个组件使用的python版本必须相同。

下面演示一下第二种方式,将python解释器嵌入到C程序中,程序wang。