C++调用python的简单例子(一)

本文介绍了一种在C++环境中调用Python脚本的方法,包括环境配置、Python模块导入及函数调用等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在C++中使用python的时候,首先需要配置python的环境。

在此,我就不说明如何配置环境了,网络一搜都是配置方法。以下,我介绍下我在C++中是如何调用python的方法。

仅仅作为参考,有问题咱们可以一起交流。

第一步:python中的简单应用函数

test.py

def AdditionFc(a , b):
	c = a + b
	return c

def SubtractionFc(a , b):
	c = a - b
	return c

这个python中只包含了两个简单的例子。一个是加法,一个是减法。

现在需要用C++语言调用python中的两个内容。

第一步:配置好python在C++中的环境

在此省略。。。

第二步:添加python的声明

#include "Python.h"

第二步:初始化python接口

Py_Initialize();

第三步:初始化使用的变量

PyObject * pModule = NULL;
PyObject * pFunc = NULL;
PyObject *pName = NULL;

这部分可以放到后面写,写到这里完全是因为个人习惯的原因。

第四步:初始化python系统文件路径,保证可以访问到 .py文件 

PyRun_SimpleString("import sys");  
PyRun_SimpleString("sys.path.append('./')");  

第五步:调用python文件名

当前的测试python文件名是test.py

pModule = PyImport_ImportModule("test");

在使用这个函数的时候,只需要写文件的名称就可以了。不用写后缀。

第六步:调用函数

在此,我仅调用一个作为参考,另一个调用方法是一样的。

pFunc = PyObject_GetAttrString(pModule, "AdditionFc");

第七步:给python传参数

PyObject *pArgs = PyTuple_New(2);//函数调用的参数传递均是以元组的形式打包的,2表示参数个数

这句代码的意思是:我要给python这个函数传入两个参数。

如果AdditionFc中只有一个参数时,写1就可以了。这里只介绍函数必须有参数存在的情况,没有参数的情况会在后面章节中介绍的。

PyTuple_SetItem(pArgs, 0, Py_BuildValue("i", 2));

解释:

0:表示序号。第一个参数

i:表示传入的参数类型时int类型

PyTuple_SetItem(pArgs, 1, Py_BuildValue("i", 4));

1:表示序号。第二个参数

第八步:使用C++的python接口调用该函数

PyObject *pReturn = PyEval_CallObject(pFunc, pArgs);

第九步:接收python计算好的返回值

int  nResult ;
PyArg_Parse(pReturn, "i", &nResult);//i表示转换成int型变量

在这里,最需要注意的是:PyArg_Parse的最后一个参数,必须加上“&”符号。


第十步:结束python接口初始化

Py_Finalize();

好了,以上就是一个简单的C++中调用python的例子。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

糯诺诺米团

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值