#Filename callbyc.py
def Hello():
print "Hello,world!"
mm@R1-A007 ~/gordon_space/program $ cat call_python.c
#include <Python.h>
int main(){
Py_Initialize();
PyObject * pModule = NULL;
PyObject * pFunc = NULL;
pModule = PyImport_ImportModule("callbyc");
pFunc = PyObject_GetAttrString(pModule, "Hello");
PyEval_CallObject(pFunc,NULL);
Py_Finalize();
return 0;
}
mm@R1-A007 ~/gordon_space/program $ gcc -o call_python call_python.c -I /usr/include/python2.7/ -lpython2.7
mm@R1-A007 ~/gordon_space/program $ ./call_python
Hello,world!
這個例子上網絡上找到的,弄了一個小時才能好,一直都是段錯誤。
最後
MULTIVEND1123 program # cp callbyc.py /usr/lib/python2.7/
才搞定
因爲pModule = PyImport_ImportModule("callbyc");的時候找不到路徑,返回的pModule 是空的。
寫個日誌記住下。