第二十二章 扩展 Python
一般来说,所有能被整合或者导入到其他 Python 脚本的代码,都可以称为扩展。
扩展的理由:
添加额外的(非 Python)功能
性能瓶颈的效率提升
保持专有源代码私密
为 Python 创建扩展需要 3 个主要的步骤:
1. 创建应用程序代码:
我们要建立的是一个“库”,一个将要在 Python 内运行的模块 在 C 代码中放一个 main()用于测试代码的正确性
2. 利用样板来包装代码
1) 包含 Python 头文件 #include “Python.h”
2) 为每个模块的每一个函数增加一个形如 PyObject* Module_func()的包 装函数
3) 为每个模块增加一个形如 PyMethodDef ModuleMethods[]的数组
4) 增加模块初始化函数 void initModule()
3. 编译与测试:distutils 包被用来编译、安装和分发这些模块、 扩展和包
1) 创建 setup.py
2) 通过运行 setup.py 来编译和连接你的代码
3) 从 Python 中导入你的模块 : $ python setup.py install
4) 测试功能
在编译的时候, 我们需要将代码跟 Python 库放在一起进行编译。
Other topics for more learning:
SWIG
Pyrex
Psyco
嵌入