网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

c调用python的方法

这篇文章主要介绍c调用python的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

平鲁网站建设公司创新互联,平鲁网站设计制作,有大型网站制作公司丰富经验。已为平鲁数千家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的平鲁做网站的公司定做!

c调用Python的步骤:

1、设置编译环境,其实就是设置Python的头文件和库文件目录

2、初始化Python解释器:

 Py_Initialize();

3、调用Python

4、释放资源

Py_Finalize();

实例:

/*
module:    Python脚步的模块名
function:  要调用的函数名
format:    传递给Py_VaBuildValue函数的可变参数模板
*/
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;
}

int main(int argc, char* argv[])
{
 Py_Initialize();

 /* 这做个简单的说明
 ** format参数用()扩起来是表示元组的意思。元组中的个数对应Python脚本中的参数。
 ** 因为fun,fun1,fun2函数的参数个数分别是 0,1,2,所以,元组中的个数必须为0,1,2,不然调用将失
 ** 败。当然,元组中的每个元素都是可以为任意的类型,比如:
 **     PyCall( "pytest", "fun2", "( i,{s:s,s:s})", 2, "name", "linxr", "age", "25" );
 */
 printf( "ret = %d\n", PyCall( "pytest", "fun",  "()" );
 printf( "ret = %d\n", PyCall( "pytest", "fun1", "(i)",  12 );
 printf( "ret = %d\n", PyCall( "pytest", "fun2", "(is)", 12, "12" );

 Py_Finalize();

 return 0;
}

以上是c调用python的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


网页名称:c调用python的方法
文章分享:http://bjjierui.cn/article/gojddc.html

其他资讯