1.为什么要进行扩展?
按照《core python》,原因有三:
i)添加额外(非python内置)的功能;
ii)提高性能;
iii)保持源码的相对私密。
2.如何进行扩展?
我首先按照《core python》第22章的内容进行的,但是结果不对,在安装setup.py文件时总是出错,又不知从何查起。在这章后面介绍了SWIG这个项目,而后又在啄木鸟社区上看到一个提到说这个是最简单的方法。于是就去SWIG官网上进行学习。
SWIG是用于将c代码(函数)方便地加入到Tcl,Python,Java和C#中去的工具,目前官网上提供的版本是2.0.0,下载解压缩之后安装即可使用。
#./configure && make && make install
之后使用SWIG进行python扩展的具体步骤如下:
a)首先编写你的c函数,比如如下创建一个test.c文件:
b)编写接口文件test.i:
c)编译:
d)All is Done! 现在可以测试一下: