调用Python脚本中的方法,莫名失败,请高手指教!解决方法
调用Python脚本中的方法,莫名失败,请高手指教!!!
test.py 脚本中只有一个方法 hello()
//PyRun_SimpleString("print 'hi,python!'"); //如果执行这两句,正常执行
//PyRun_SimpleString("execfile('test.py')");
.......
printDict(pDict); //打印模块的字典列表
PyObject* pFunHi = PyDict_GetItemString(pDict,"hello");
if(!pFunHi) //这里失败了,没有查找到hello方法
{
printf("can't found the function\n");
return -1;
}
执行后打印结果:
__builtins__
__file__
__package__
__path__
__name__
__doc__
can't found the function
麻烦高手们分析下是什么问题,我刚学习python,python版本 2.7.3,编译器vs2008,谢谢!!
------解决方案--------------------
不知道你前面怎么写的?
这是一个例子调用main.py中的test函数
test.py 脚本中只有一个方法 hello()
//PyRun_SimpleString("print 'hi,python!'"); //如果执行这两句,正常执行
//PyRun_SimpleString("execfile('test.py')");
.......
printDict(pDict); //打印模块的字典列表
PyObject* pFunHi = PyDict_GetItemString(pDict,"hello");
if(!pFunHi) //这里失败了,没有查找到hello方法
{
printf("can't found the function\n");
return -1;
}
执行后打印结果:
__builtins__
__file__
__package__
__path__
__name__
__doc__
can't found the function
麻烦高手们分析下是什么问题,我刚学习python,python版本 2.7.3,编译器vs2008,谢谢!!
------解决方案--------------------
不知道你前面怎么写的?
这是一个例子调用main.py中的test函数
//#========================================================
//# author:ago
//# 2012/08/24 19:26:57
//#========================================================
#include "python_lib/Python.h"
#include <windows.h>
#pragma comment(lib,"python27_d.lib")
int main(int argc, char *argv[])
{
Py_Initialize();
//PyRun_SimpleString("import sys");
//PyRun_SimpleString("sys.path.append('./')");
PyObject* pName = PyString_FromString("main");
//python 文件的名字
PyObject* pModule = PyImport_Import(pName);
if ( !pModule )
{
MessageBox(NULL, ("找不到main.py"), ("提示"), MB_OK);
return 1;
}
PyObject* pDict = PyModule_GetDict(pModule);
PyObject* pFunc = PyDict_GetItemString(pDict, "test");
//python 文件中函数名:test
PyObject_CallObject(pFunc, NULL);
Py_Finalize();
system("pause");
}