有一个用C ++编写的库。我已经尝试了各种方法将它作为扩展模块包装在Python中。
首先,我使用Cython编写包装器。问题是有很多功能,非常耗时。
我最近试图重新开始使用SWIG。 SWIG是一个包装器生成器,可以自动将C ++的包装器代码创建为脚本语言。我使用SWIG为库的90%快速生成包装器。
这里的问题是SWIG在库的某些部分有问题,例如。 stl容器,例如我可以使用Cython手动包装的std::set<foo*>
。
是否可以将大部分库包装在SWIG中,并使用Cython手工包装困难的部分?
澄清:我不是要问如何将C ++包装成Python。我可以使用SWIG生成适用于大多数函数的包装,并且我可以在Cython中手动编写包装问题位。问题是:我如何结合两种包装方法来获得两全其美?