我开始在一个巨大的C++库(由多个相互依赖的静态库构成)上使用SWIG将它暴露给python。该库定义了许多始终用作参数的基本类(例如,不同类型的图像)。在lib中还广泛使用STL,继承和模板。将C++库暴露给Python + PIL
到目前为止,我有一小部分可用于Python的lib,但想逐步添加剩余的90 +%。
对我来说,与SWIG合作真的没什么乐趣:与模板实例化,学习所有SWIG语法和关键字等等。我最近玩了一些CTypes,发现它很愉快,我现在正在考虑写一个整个库的extern C接口,而不是使用SWIG。
我宁愿使用C/C++和/或Python进行编码,而不是学习一组隐含的SWIG命令(也包括SIP)。
有相当多的问题,在那里已经提出类似的建议,所以我会加入一些新的东西和具体:
我想在库的内部图像类从Python中可见的PIL图像透明,而不是SWIG包装的本地类。我将不得不求助于普通的Python外部API来完成这一任务吗?
我欢迎任何和所有的建议!
我不能相信我错过了这个线程:http://stackoverflow.com/questions/1076300/extending-python-with-c-c更多的选择! – 2011-03-02 14:07:40
我还没有时间研究这个问题,但应该在下个月这样做。我可能会尝试一些方法并在此发布我的发现/意见。 – 2011-04-05 08:47:53