将C ++库暴露给Python + PIL

时间:2011-03-01 21:03:03

标签: c++ python python-imaging-library

我开始在一个巨大的C ++库(由几个相互依赖的静态库组成)上使用SWIG来将它暴露给python。该库定义了许多作为参数使用的基本类(例如,不同类型的图像)。 lib中也广泛使用STL,继承和模板。

到目前为止,我有一小部分可以从Python使用的lib,但是希望逐步添加剩余的90 +%。

就我而言,使用SWIG真的没什么乐趣:与模板实例化斗争,学习所有SWIG语法和关键词等等。我最近玩了一些CTypes,发现它很有趣,我现在正考虑写一个extern整个库的C接口,而不是使用SWIG。

我宁愿用C / C ++和/或Python编写代码,而不是学习一组模糊的SWIG命令(也算是SIP)。

有很多问题已经提出类似的建议,所以我会添加一些新的和具体的:

我希望库的内部图像类可以透明地从python中看作PIL图像,而不是SWIG-Wrapped本机类。我是否必须使用普通的Python外部API要做到这一点?

我欢迎任何建议!

1 个答案:

答案 0 :(得分:1)

您是否考虑过使用Boost.Python?