c++ 调用 python函数,不能直接传入string类型,要变成char *类型的参数

Py_Initialize(); //初始化

//必须写
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");//这一步很重要,修改Python路径

//加载函数所i在文件名
PyObject * pModule = PyImport_ImportModule("pythonmain"); //test:Python文件名,若脚本有错则返回空

//加载 名为m的函数
PyObject *pfun = PyObject_GetAttrString(pModule, "m");

//传入string类型参数,这里注意一定要声明称 char *类型,不能直接传入string类型的参数
const char *r = "data/weight/";
const char *n = "football";


//建立形参 带有两个string类型的参数,放在一个元组里
	PyObject *args = PyTuple_New(2);
	PyTuple_SetItem(args, 0, Py_BuildValue("s", r));
	PyTuple_SetItem(args, 1, Py_BuildValue("s", n));
	PyObject *pReturn = PyEval_CallObject(pfun, args);

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值