如何在python中调用C语言中的函数

今天在工作中遇到一个问题;
我需要在Python脚本中调用一个Cpp语言函数,这个Cpp语言函数属于外部模块的函数。
具体环境:
OS: Linux Fedora 26
python: python2.7
接下来我要开始调查这个问题,调查清楚之后,我将会更新到这里来:
[2018-03-01 update]
        C语言函数接收的输入是一个结构体,这样的话,就需要Python将数据以Dictionary的形式传进来。
这样的话,昨天调查的函数PyArg_P arseTuple已经不能满足需要了。这时可以将接收输入的函数变更为 PyArg_ParseTupleAndKeywords()。
        同时,还有一个问题,在编译时有如下一个编译错误:fatal error: Python.h: No such file or directory
该问题的解决方法:安装python-dev package或者python34-dev package。
[2018-02-28 update]
在python中调用C语言的API,需要有如下三部分内容;
1. 导出函数:
       所谓导出函数,就是适配函数,在此函数中有如下几件事情需要完成
  • 将python输入转换成C语言输入:PyArg_ParseTuple
  • 给被适配函数配参,并调用
  • 将被调用函数的输出,转换成python对象输出:Py_BuildValue
2. 方法列表

列出所有可以被python解释器使用的函数列表,包括四项内容:

  • 方法名:python解释器调用时的名字
  • 导出函数:上面第一部分实现的函数
  • 参数传递方式:METH_VARARGS:元组;METH_KEYWORDS:字典
  • 方法描述:属于对该函数的说明内容。
3.初始化函数
每个python扩展模块,都要有初始化函数,以便python解释器能够对其正确的初始化
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值