【发布时间】:2011-03-01 21:03:03
【问题描述】:
我开始在一个巨大的 C++ 库(由几个相互依赖的静态库组成)上使用 SWIG,以将其公开给 python。该库定义了许多用作参数的原始类(例如不同类型的图像)。在 lib 中也广泛使用了 STL、继承和模板。
到目前为止,我只有一小部分可用于 Python 的 lib,但我希望逐步添加剩余的 90+%。
就我而言,使用 SWIG 确实不好玩:与模板实例化作斗争,学习所有 SWIG 语法和关键字等。我最近玩了一点 CTypes,发现它非常有趣,所以我现在正在考虑编写一个 extern整个库的 C 接口,而不是使用 SWIG。
我宁愿使用 C/C++ 和/或 Python 进行编码,也不愿学习一组晦涩难懂的 SWIG 命令(这也适用于 SIP)。
已经有很多问题提出了类似的建议,所以我将添加一些新的和具体的内容:
我希望库的内部图像类在 python 中作为 PIL 图像透明可见,而不是作为 SWIG 包装的本机类。我是否必须求助于普通的旧 Python 外部 API完成那个?
我欢迎任何建议!
【问题讨论】:
-
我不敢相信我错过了这个话题:stackoverflow.com/questions/1076300/extending-python-with-c-c 还有更多选择!
-
我还没有时间研究这个问题,但应该在下个月做。我可能会尝试一些方法并在这里发布我的发现/意见。
标签: c++ python python-imaging-library