基本上我想用C编写的Python程序调用函数.
所以(据我所知)我的选择是:
- CTypes/CFFI
- 创建包含C函数的DLL/SO/DyLib,并使用CTypes或CFFI访问它们.显然CFFI更快,唯一的缺点是必须在python中声明所有函数签名.
- 优点:
- 不必在我的C函数中进行任何调整.所有类型转换都是在Python中完成的.
- 缺点:
- Python二进制模块
- 在C中编写一个python接口,将我的C模块转换为二进制python模块
- 优点:
- 缺点:
- 所有类型转换都在C语言中完成.使用[SIP] [3]这可能是自动化的.
将C模块转换为python二进制模块真的更快吗?
两个解决方案是否都支持向C函数发送python回调?
SIP是生成python接口的好选择吗?还有其他选择吗?
其中任何一个都有其他特殊性吗?