开发环境vs2010+qt4.8.6,用C++实现QT开发界面,通过界面的一个按钮,运行python一个计算模块,需要用C++向python传入和传出参数,目前直接在python中写好参数的话,程序运行无问题;但是从C++向Python模块传递参数过程中一直报错,求大神帮助。
这是调用Python模块并传递参数的代码
void PositiveBranchConvexConcave::call_py_module()
{
Py_SetPythonHome(L"C:/Anaconda3");
Py_Initialize();//调用Py_Initialize()进行初始化
PyObject * pModule = NULL;
PyObject * pFunc = NULL;
PyObject * pArgs = NULL;
pModule = PyImport_ImportModule("PositiveBranchConvexConcave_module");//调用的Python文件名
pFunc = PyObject_GetAttrString(pModule, "cal");//调用的函数名
pArgs =PyTuple_New(2);
PyTuple
_SetItem(pArgs, 0, Py_BuildValue("i", 5549));
PyTuple_SetItem(pArgs, 1, Py_BuildValue("i", 20));
// pArgs = Py_BuildValue("[i,i,i,i,i,i,i]",5549,20,93,14000,1.82,200,0);//构造一个元组
PyEval_CallObject(pFunc, pArgs);//调用函数,NULL表示参数为空
Py_Finalize();//调用Py_Finalize,和Py_Initialize相对应的.
}
这是报的错误
我用断点调试,只要运行到pArgs =PyTuple_New(2);这句话就会报错