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