环境: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__