python c 扩展 ctype 以及 效率对比

本文介绍了在Windows环境下使用VS2010 Express创建Python C扩展的过程,包括使用原生Python C API和ctypes两种方法。通过实现累加功能的add方法,对比了Python与C扩展的性能差异,展示了C扩展在处理大量计算时的速度优势。
摘要由CSDN通过智能技术生成

python开发效率高,第三方库资源丰富,而且可以用C/C++扩展。(基于python官方文档)

 

今天研究了用C来写python的扩展,用的是2.x版本的,刚开始还弄错了,看的是3.x版本的文档,浪费了不少时间。

其实用c/c++写python的扩展,有至少四种方法:

1、原生python c api

2、ctypes

3、boost.python

4、swig

后面两种需要额外下载安装boost.python 或者 swig,更加麻烦,所以只是实验了前两种。

首先将用C/C++ 编写python扩展吧;

我是在widows下,用的 vs2010 express,新建一个win32  DLL工程

然后在源码里面增加下面代码,主要实现了add方法,实现返回累加值,比如输入100,返回 1加到100

注意:需要将python安装目录下的 include(头文件) 和 lib 文件夹(库文件) 加入工程目录,我用的python (x,y) 所以还加了 libs目录

最后可以编译了,编译成一个 *. dll 文件,改成 *.pyd  然后copy到 python 的lib文件夹下,这样就可以用了,

比如我这个工程叫做spam,编译成spam.dll,重命名为spam.pyd

#include <Python.h>
static PyObject *SpamError;
static PyObje
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值