C++和Python是开发过程中比较常用的两种语言,实现两者之间的调用能够很好的发挥两种语言的优势。本文将介绍C++调用Python的实现过程。
1、采用软件Visual Studio2017作为开发编译工具,当然你若采用2019版也是很OK的;当然还需要下载安装Python,这里我安装的是Python3.9.
2、在VS中新建项目test1,若你想后期不再重复配置,依然可以选择 右击Release|x64,选择”添加新项目属性表“,命名并保存,然后在该项目属性表上进行环境配置,以后新建项目直接添加该项目属性表即可一劳永逸~
3、因为我采用Anaconda安装的Python,因此,在VS2017配置环境的过程如下:
①属性>>VC++目录>>库目录:添加 D:\software\anaconda\envs\pt\libs(或许你的是python\libs)
②属性>>C/C++>>常规>>附加包含目录:添加 D:\software\anaconda\envs\pt\include(或许你的是python\include)
③属性>>链接器>>常规>>附加库目录:添加 D:\software\anaconda\envs\pt\libs(或许你的是python\include)
④一定一定还要要要注意,从项目>>属性中修改这两项,保证程序不出莫名其妙的错误:
项目>>属性>>C/C++>>常规>>SDL检查:改为否。
C/C++>>语言>>符合模式:改为否。
到目前为止就完成了C++调用Python的环境配置,让我们一起测试一下吧
4、测试开始
①新建一个hello.py文件,里面编写代码如下
def printHello():
a = 2
b = 3
print("a+b=", a + b)
②将py文件放在项目test1的.cpp文件所在目录下,将test1改成Release的运行环境
③测试代码C++:
#include<iostream>
#include<cstring>
#include<queue>
#include<algorithm>
#include<cstdlib>
#include<cstdio>
#include"Python.h"
using namespace std;
int main() {
Py_Initialize(); /*初始化python解释器,告诉编译器要用的python编译器*/
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");
PyRun_SimpleString("import hello"); /*调用python文件*/
PyRun_SimpleString("hello.printHello()");/*调用python文件中的函数*/
Py_Finalize(); /*结束python解释器,释放资源*/
system("pause");
return 0;
}
④运行结果
如果你的输出结果跟我一样,那就配置成功啦~
如果你出现无法找到Python.h的错误,那么你需要在系统变量中添加两个变量:
变量名PYTHONHOME
变量值:D:\software\anaconda\envs\pt(python的安装目录)
变量名:PYTHONPATH
变量值:D:\software\anaconda\envs\pt(python的安装目录)
改了好久终于成功了,记录每一次成长…………