c++中调用python里面的函数问题
python3.1
如:test.py
def myfun(x,y):
print('x+y=',x+y)
然后C++中:////////////////////
//////////////////////编译运行没问题:python3.1的。
Py_Initialize();
PyObject *pm=NULL;
PyObject *pFun=NULL;
PyObject *pFun2;
PyObject *para=NULL;
PyObject *pname=NULL;
PyObject *pdic=NULL;
//pname=PyString_FromString("test");
pm=PyImport_ImportModule("test");
if(!pm)
{
printf("cannot find test.py");
getch();
return -1;
}
pdic=PyModule_GetDict(pm);
pFun=PyDict_GetItemString(pdic,"myfun");/////////////////监控发现pFun=NULL////////
//pFun2=PyObject_GetAttrString(pm,"show");////////////
int a;
// pFunc=PyDict_GetItemString(pDict,"scan");
if(!pFun||!PyCallable_Check(pFun)) //////////////此处已经调用
{
printf("无法找到函数myfun()"); ////////////运行到此跳出此信息,没有找到函数
getch();
return -1;
}
para=PyTuple_New(2);
PyTuple_SetItem(para,0,Py_BuildValue("I",55));
PyTuple_SetItem(para,1,Py_BuildValue("I",12));
PyEval_CallObject(pFun,para);
PyRun_SimpleString("print('fuck aaaaaaaaaa')");
printf("c++ fun:%d",a);
Py_Finalize();
如:test.py
def myfun(x,y):
print('x+y=',x+y)
然后C++中:////////////////////
//////////////////////编译运行没问题:python3.1的。
Py_Initialize();
PyObject *pm=NULL;
PyObject *pFun=NULL;
PyObject *pFun2;
PyObject *para=NULL;
PyObject *pname=NULL;
PyObject *pdic=NULL;
//pname=PyString_FromString("test");
pm=PyImport_ImportModule("test");
if(!pm)
{
printf("cannot find test.py");
getch();
return -1;
}
pdic=PyModule_GetDict(pm);
pFun=PyDict_GetItemString(pdic,"myfun");/////////////////监控发现pFun=NULL////////
//pFun2=PyObject_GetAttrString(pm,"show");////////////
int a;
// pFunc=PyDict_GetItemString(pDict,"scan");
if(!pFun||!PyCallable_Check(pFun)) //////////////此处已经调用
{
printf("无法找到函数myfun()"); ////////////运行到此跳出此信息,没有找到函数
getch();
return -1;
}
para=PyTuple_New(2);
PyTuple_SetItem(para,0,Py_BuildValue("I",55));
PyTuple_SetItem(para,1,Py_BuildValue("I",12));
PyEval_CallObject(pFun,para);
PyRun_SimpleString("print('fuck aaaaaaaaaa')");
printf("c++ fun:%d",a);
Py_Finalize();
...全文
相关推荐
python调用c++传递数组的实例
今天小编就为大家分享一篇python调用c++传递数组的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
C++调用python脚本
C++调用python脚本
python调用C/C++ demo
看到python和C/C++代码怎么调用,参考网上的写了两个demo,分别是python调用C和C++的,欢迎下载!
linux中使用boost.python调用c++动态库的方法
主要给大家介绍了关于linux中使用boost.python调用c++动态库的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
Python调用C++,通过Pybind11制作Python接口
今天小编就为大家分享一篇关于Python调用C++,通过Pybind11制作Python接口,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧


