Python嵌入C實例的相關具體解析
Python在實際的相關應用中就有很強大功能,以及C在實際的運行中也具有很強的功能。如果對Python嵌入C你有過此想法的話,你就可以瀏覽我們的文章,其中包括中Python嵌入C的實例。望你會有所收獲。
在VC++ 6.0中新建一個名為“EmbPython”的空“Win32 Console Application”工程。向其添加如下所示的“EmbPython.c”文件。
- #include <stdio.h>
- #include <Python.h>
- int main(int argc, char* argv[])
- {
- PyObject *modulename, *module, *dic, *func, *args, *rel, *list;
- char *funcname1 = "sum";
- char *funcname2 = "strsplit";
- int i;
- Py_ssize_t s;
printf("-==在C中嵌入Python==-\n");/* Python解釋器的初始化*/
- Py_Initialize();
- if(!Py_IsInitialized())
- {
- printf("初始化失敗!");
- return -1;
- }
/* 導入Python模塊,并檢驗是否正確導入 */
- modulename = Py_BuildValue("s", "pytest");
- module = PyImport_Import(modulename);
- if(!module)
- {
- printf("導入pytest失敗!");
- return -1;
- }
/* 獲得模塊中函數并檢驗其有效性 */
- dic = PyModule_GetDict(module);
- if(!dic)
- {
- printf("錯誤!\n");
- return -1;
- }
/* 獲得sum函數地址并驗證 */
- func = PyDict_GetItemString(dic,funcname1);
- if(!PyCallable_Check(func))
- {
printf("不能找到函數 %s",funcname1);
- return -1;
- }
/* 構建列表 */
- list = PyList_New(5);
printf("使用Python中的sum函數求解下列數之和\n");
- for (i = 0; i < 5; i++)
- {
- printf("%d\t",i);
- PyList_SetItem(list,i,Py_BuildValue("i",i));
- }
- printf("\n");
/* 構建sum函數的參數元組*/
以上就是對把Python嵌入C中的實例相關的內容的介紹,望你會有所收獲。
【編輯推薦】