C++调用python,为什么读不出py文件里的方法

xuan_general 发布于 2013/07/30 15:46
阅读 700
收藏 0

环境:win2003、vs2008、python2.7.5

test.py文件:

# Filename: test.py
def sayhi(name):
print 'hi',name;

void printDict(PyObject* obj) {

if (!PyDict_Check(obj))
return;
PyObject *k, *keys;
keys = PyDict_Keys(obj);
for (int i = 0; i < PyList_GET_SIZE(keys); i++) {
k = PyList_GET_ITEM(keys, i);
char* c_name = PyString_AsString(k);
printf("%s\n", c_name);
}

}

main()

{Py_Initialize();
if (!Py_IsInitialized())
return -1;
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");
//导入模块
PyObject* pModule = PyImport_ImportModule("test");
if (!pModule) {
printf("Cant open python file!/n");
return -1;
}
//模块的字典列表
PyObject* pDict = PyModule_GetDict(pModule);
if (!pDict) {
printf("Cant find dictionary./n");
return -1;
}
//打印出来看一下
printDict(pDict);
}

运行到printDict之后,为什么打印不出来里面的sayhi方法,打印:

__builtins__

__file__

__package__

__path__

__name__

__doc__

加载中
0
xuan_general
xuan_general
求大神指教啊
0
xuan_general
xuan_general
就没有遇到这种问题的吗
返回顶部
顶部