c写python库_使用C/C++编写Python扩展库

本文描述在Windows系统下(Linux下也一样,官方文档本来就没有区分系统)使用C/C++编写Python3扩展库的方法,Python Extending 的官方文档在这里(Extending and Embedding the Python Interpreter)。下面主要讲原理,有描述不清楚的请参考官方文档。

1.Python扩展库的本质

Python扩展库的文件后缀名为pyd,实际就是一个标准的C方式导出函数的DLL动态库,使用结构体指针和函数指针来实现对象的传递。制定了Python和扩展库之间函数参数传递规范,数据对象规范,为方便使用,像微软的COM API一样,Python提供了Python/C API来完成参数的解析,对象的构造等。

2.开发环境

开发环境:既然是windows系统,当然使用微软的集成开发环境,这里使用VS2015中的VC140。

运行测试环境:到Python官网下载最新的Python3.6.1,安装后到安装目录提取Python/C API,两个目录,include和libs复制出来,加入到VC工程的附加包含目录和附加库目录即可。下面先以一个具体例子讲解,先不到出对象,只导出函数。

3.实现一个简单的Python扩展库

假设这里的例子扩展模块名为libkdc,在VS里建立一个win32 DLL工程,工程名为linkdc,使用MT模式摆脱VC运行库。将Python/C API的include和Libs目录加入到libkdc工程的附加包含目录和附加库目录。在源代码中引入Python.h,为方便使用,再定义一个C方式导出函数宏PyExt_FUNC

#include

#ifdef _WIN32

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值