Python嵌入C实例的相关具体解析


Python在实际的相关应用中就有很强大功能,以及C在实际的运行中也具有很强的功能。如果对Python嵌入C你有过此想法的话,你就可以浏览我们的文章,其中包括中Python嵌入C的实例。望你会有所收获。

在VC++ 6.0中新建一个名为“EmbPython”的空“Win32 Console Application”工程。向其添加如下所示的“EmbPython.c”文件。

  1. #include <stdio.h> 
  2. #include <Python.h> 
  3. int main(int argc, char* argv[])  
  4. {   
  5. PyObject *modulename, *module, *dic, *func, *args, *rel, *list;  
  6. char *funcname1 = "sum";  
  7. char *funcname2 = "strsplit";  
  8. int i;  
  9. Py_ssize_t s;   

printf("-==在C中嵌入Python==-\n");/* Python解释器的初始化*/

  1. Py_Initialize();   
  2. if(!Py_IsInitialized())   
  3. {   
  4. printf("初始化失败!");   
  5. return -1;   
  6. }   

/* 导入Python模块,并检验是否正确导入 */

  1. modulename = Py_BuildValue("s", "pytest");   
  2. module = PyImport_Import(modulename);   
  3. if(!module)   
  4. {   
  5. printf("导入pytest失败!");   
  6. return -1;   
  7. }   

/* 获得模块中函数并检验其有效性 */

  1. dic = PyModule_GetDict(module);   
  2. if(!dic)  
  3. {  
  4. printf("错误!\n");  
  5. return -1;   
  6. }   

/* 获得sum函数地址并验证 */

  1. func = PyDict_GetItemString(dic,funcname1);   
  2. if(!PyCallable_Check(func))   
  3. {   
  4.  

printf("不能找到函数 %s",funcname1);

  1. return -1;   
  2. }  
  3.  

/* 构建列表 */

  1. list = PyList_New(5); 

printf("使用Python中的sum函数求解下列数之和\n");

  1. for (i = 0; i < 5; i++)  
  2. {  
  3. printf("%d\t",i);  
  4. PyList_SetItem(list,i,Py_BuildValue("i",i));  
  5. }  
  6. printf("\n");  
  7.  

/* 构建sum函数的参数元组*/

以上就是对把Python嵌入C中的实例相关的内容的介绍,望你会有所收获。

评论关闭