程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言調用PYTHON腳本

C語言調用PYTHON腳本

編輯:關於C語言

先上python代碼: # call.py   def test():     print 'hello world'     def add(a,b):     return a + b   再上c代碼 #include <stdio.h> #include <stdlib.h> #include <Python.h>   int main(int argc, char *argv[]) {     Py_Initialize();       if(!Py_IsInitialized())        {           return -1;       }            PyRun_SimpleString("import sys");     PyRun_SimpleString("sys.path.append('./')");     PyObject* pName;     PyObject* pModule;     PyObject* pDict;     PyObject* pFunc;          pName = PyString_FromString("call");     pModule = PyImport_Import(pName);     if(!pModule)     {         printf("can't find call.py");         getchar();         return -1;     }          pDict = PyModule_GetDict(pModule);     if(!pDict)     {         return -1;     }          {         pFunc = PyDict_GetItemString(pDict,"test");         if(!pFunc || !PyCallable_Check(pFunc))         {             printf("can't find function [test]");             getchar();             return -1;         }                  PyObject_CallObject(pFunc,0);     }          {         pFunc = PyDict_GetItemString(pDict,"add");         if(!pFunc || !PyCallable_Check(pFunc))         {             printf("can't find function [test]");             getchar();             return -1;         }                  PyObject* args = PyTuple_New(2);         PyTuple_SetItem(args,0,Py_BuildValue("l",3));         PyTuple_SetItem(args,1,Py_BuildValue("l",4));         PyObject *pAdded = PyObject_CallObject(pFunc,args);         int ret = PyInt_AsLong(pAdded);           printf("add value:%d\n",ret);         Py_DECREF(args);     }              Py_DECREF(pName);     Py_DECREF(pDict);     Py_DECREF(pModule);     Py_Finalize();         system("PAUSE");         return 0; }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved