C++调用python模块 10

问题如下,我要写一个C++程序运行python模块,用到一些C++/python的API,现在出现错误,不知道如何解决。py.cpp#include"python2.6/... 问题如下,我要写一个C++程序运行python模块,用到一些C++/python的API,现在出现错误,不知道如何解决。
py.cpp
#include"python2.6/Python.h"
#include<string>
int main()
{
Py_Initialize();//使用python之前,要调用Py_Initialize();这个函数进行初始化
PyObject * pModule = NULL;
PyObject * pFunc = NULL;
pModule = PyImport_ImportModule("hello");//这里是要调用的文件名
PyObject * pClass= PyObject_GetAttrString(pModule, "TestClass");//这里是要调用的函数名
if(!pClass)
{
printf("cannot find class\n");
return -1;
}
PyObject * pTuple = PyTuple_New(1);
PyTuple_SetItem(pTuple, 0, Py_BuildValue("s", "jacky"));
PyObject * pObject = PyEval_CallObject(pClass, pTuple);
pFunc = PyObject_GetAttrString(pObject, "printName");//gdb调试发现错误出现在这一行
PyEval_CallObject(pFunc, NULL);//调用函数
Py_Finalize();//调用Py_Finalize,这个根Py_Initialize相对应的。
return 0;
}

hello.py
class TestClass:
def _init_(self, name):
self.name = name
def printName(self):
print self.name
展开
 我来答
Kyoya18UH3
2014-06-06 · 超过75用户采纳过TA的回答
知道答主
回答量:133
采纳率:100%
帮助的人:150万
展开全部
这个问题比较复杂,有可能是你的python文件路径不对或者是使用的C编译器与编译module时使用的编译器不一致。一般py文件可以放在程序运行目录下或者PYTHON\lib目录下。
追问
,OUT文件和.PY文件在同一文件夹下的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式