在很多时候,我们需要在一个c++工程项目中调用部分Python代码,这就需要我们实现Python和C++之间的交互。交互方式有两种:1. 依靠 TCP 建立的网络通信交互;2. 嵌入式混合语言编程(Embedding Code)。这里主要介绍后者,如何在CLion下使用C++调用Python模块。
(一)环境搭建
安装CLion并配置好编译环境(下载地址:https://www.jetbrains.com/clion/),下载并安装好Python环境。
在CLion中新建一个C++项目,我们要做的就是修改 CMakeList
文件中的内容:
添加下面两行:
# 添加 Python 的 include 目录,找到自己装 python 的目录,Python 默认安装路径在:“C:\Users\你自己的用户名\AppData\Local\Programs\Python”
include_directories(C:\\Users\\eve\\AppData\\Local\\Programs\\Python\\Python37\\include)# 添加 Python 的 lib 库,同样找到 python 安装目录下的 libs 文件夹中的 python37.lib 文件
link_libraries(C:/Users/eve/AppData/Local/Programs/Python/Python37/libs/python37.lib)
添加完成之后我们 CmakeList 就写好了,接下来我们测试一下代码,记得引入 “Python.h”:
运行代码后发现报错:
如果你遇到了同样的错误,不要着急,我们只需要修改 Python.h 中一小点代码就可以了,我们打开 Python.h 源码(在 “Python 安装目录 / include” 文件夹中),打开后我们在最开头添加一个引用:
#include "math.h"
保存后,再重新运行代码,发现可以正常运行了: