包装类:为C项目创建python包装器

时间:2013-01-28 07:26:58

标签: python c wrapper

我是python编程的新手,但已经用C编程。我正在开发一个名为EtherDogs的项目,它是一个网络数据包分析器。我该如何为项目编写python包装器?

如果我必须为它做一个C ++包装器并不困难,但我如何在python中完成它?

1 个答案:

答案 0 :(得分:4)

您应该尝试像SWIG这样的包装器生成器。手工编写胶水代码是重复和无聊的。为什么不让电脑为您做简单的部件?

SWIG将接收您的源文件和(最小)接口规范。它将生成Python代理类和C / C ++代码。您将C / C ++代码编译为Python扩展库,然后就像使用纯Python库一样使用它。在引擎盖下,代理类SWIG生成将Python类型转换为原始C函数调用的句柄。

作为一个额外的好处,包装器生成器(包括SWIG)通常可以为许多不同的高级语言创建绑定,而您几乎不需要额外的努力。