mm@R1-A007 ~/gordon_space/program $ cat callbyc.py
#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
#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 是空的。
写个日志记住下。