包装c++;同时使用Cython和SWIG 有一个用C++编写的库。我尝试了各种方法将它作为一个扩展模块包装在Python中

包装c++;同时使用Cython和SWIG 有一个用C++编写的库。我尝试了各种方法将它作为一个扩展模块包装在Python中,python,c++,wrapper,swig,cython,Python,C++,Wrapper,Swig,Cython,首先,我用Cython来写包装。问题是有这么多的功能,这是非常耗时的 我最近试着用SWIG重新开始。SWIG是一个包装器生成器,它自动为C++编写包装代码到脚本语言中。我使用SWIG为90%的库快速生成包装 这里的问题是SWIG在库的某些部分有问题,例如stl容器,例如我可以用Cython手动包装的std::set 是否可以用SWIG包装大部分库,并使用Cython手动包装困难的部分 澄清:我不想问如何将C++封装到Python中。我可以使用SWIG生成一个适用于大多数函数的包装,我可以用Cyt

首先,我用Cython来写包装。问题是有这么多的功能,这是非常耗时的

我最近试着用SWIG重新开始。SWIG是一个包装器生成器,它自动为C++编写包装代码到脚本语言中。我使用SWIG为90%的库快速生成包装

这里的问题是SWIG在库的某些部分有问题,例如stl容器,例如我可以用Cython手动包装的
std::set

是否可以用SWIG包装大部分库,并使用Cython手动包装困难的部分


澄清:我不想问如何将C++封装到Python中。我可以使用SWIG生成一个适用于大多数函数的包装,我可以用Cython手工编写问题位的包装。问题是:如何将这两种包装方法结合起来,以获得两个世界的最佳C++?

SWIG直接与C++一起工作。那么问题是什么呢?使用SIP的C++绑定。在调用和命名约定上的差异,所以您需要一个包装器来从C++调用C.,在类似的位置,我写了一个接口,使用该库并做需要做的事情,然后使用(Python扩展模块的选择)使Python可以使用该接口。让C++库中的所有东西直接在Python中都是不实用的,而且异常也会有问题。@ Tunui的挑战不是让Sug与C++一起工作,而是使用C++来使用Python使用SWIG。@ RealoToMeHMM,然后查看LBFFI。@ KyNyoStrum:库是API,我宁愿有一个完整的包装(减去我从来都不需要的部分,加上%忽略),也不愿回去重新实现我认为以后不需要的函数。