官方文档:https://docs.python.org/zh-cn/3/extending/extending.html
** 什么时候要用扩展
- 性能瓶颈:比如某些计算在Python中很慢,比如GIL导致CPU只能使用单核。
- 代码保护:将核心代码放到更低层,增加反编译难度。
** Hello World
步骤
- 编写C文件
- 编写包装文件
- 编写setup文件
- 编译、测试
1. 编写C文件
1 | //fib.c文件 |
2. 编写包装文件
1 | //speedup_fib.c |
3. 编写setup.py文件
1 |
|
4. 编译、测试
python setup.py build
编译成功后会在build文件夹生成动态库,windows下为pyd,linux下为so
编写测试脚本
1 | import time |