Python被称为是胶水语言并且还是基于C语言而开发的,那么python也是可以在C语言的程序之中去使用的。下面这篇文章会带来在C语言程序中使用python的详细步骤和代码示例,往下看看吧。
1.设置Python的编译环境,将库文件目录和头文件都改成基于C语言的就可以,这一步可以由Cpython去自行完成。
2.在C语言程序的顶部写上Py_Initialize()这么一句代码来表示初始化python解释器,这样python的模块才能够在C语言程序中去使用。
3.这一步就是调用python的代码示例了,如下所示:
int PyCall( const char * module, const char * function, const char *format, ... ) { PyObject* pMod = NULL; PyObject* pFunc = NULL; PyObject* pParm = NULL; PyObject* pRetVal = NULL; //导入模块 if( !(pMod = PyImport_ImportModule(module) ) ){ return -1; } //查找函数 if( !(pFunc = PyObject_GetAttrString(pMod, function) ) ){ return -2; } //创建参数 va_list vargs; va_start( vargs, format ); pParm = Py_VaBuildValue( format, vargs ); va_end(vargs); //函数调用 pRetVal = PyEval_CallObject( pFunc, pParm); //假定返回值为整形 int ret; PyArg_Parse( pRetVal, "i", &ret ); return ret; }
上面代码示例之中的Pycall是调用python的主要执行函数,参数的意思分别为python的模块名、要调用的函数名、可变参数的模块。其中会先声明这些参数都为Null,然后再通过传进来的参数去导入要使用的模块并查找这个模块内的函数。找到了对应的函数之后就可以去传递所需的参数并调用函数返回结果了。
最后需要在C语言的入口程序main函数之中去调用这个函数并且在末尾输入Py_Finalize();这个语句才能将使用的python资源给释放掉,否则会对C语言程序的运行造成压力。