|
自己有form.py的python模块文件,现在写一个.c文件调用这个form .py中的函数。gcc编译完成后程序可以正常运行。现在我想把.c文件打成动态库libform.so,在其他的地方调用动态库,结果就提示找不到form.py这个文件.
form.py和libform.so已经拷贝到调用的目录下了。。。程序运行到pModule= PyImport_ImportModule("form"); 时返回的pModule是NULL
哪位大侠指点一下,怎么回事啊?
下面是调用python的模块的c语言函数,把这个函数打成的动态库。调用func()函数时出现的问题
int func(char* filePath){
Py_Initialize();
if(!Py_IsInitialized())
{
printf("initialize error\n");
return -1;
}
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");
PyObject *pModule = NULL;
PyObject *pFunc = NULL;
PyObject *pArg = NULL;
PyObject *presult = NULL;
pModule= PyImport_ImportModule("form");
if(!pModule)
{
perror("pModule");
}
pFunc = PyObject_GetAttrString(pModule, "formp");
if(!pFunc)
{
perror("pFunc");
}
pArg = Py_BuildValue("(s)",filePath);
if(!pArg)
{
perror("pArgp");
}
presult = PyEval_CallObject(pFunc, pArg);
Py_Finalize();
return 1;
}
|
|