C中使用python函索

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

Hello,world!

这个例子上网络上找到的,弄了一个小时才能好,一直都是段错误。

最后

MULTIVEND1123 program # cp callbyc.py  /usr/lib/python2.7/

才搞定

因为pModule = PyImport_ImportModule("callbyc");的时候找不到路径,返回的pModule 是空的。


写个日志记住下。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章