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中的实例相关的内容的介绍,望你会有所收获。
【编辑推荐】