【发布时间】:2013-01-28 07:26:57
【问题描述】:
我是 python 编程的新手,但是用 C 编程。我正在开发一个名为 EtherDogs 的项目,它是一个网络数据包分析器。如何为项目编写 python 包装器?
如果我必须为它做一个 C++ 包装器,这并不难,但我如何在 python 中做呢?
【问题讨论】:
我是 python 编程的新手,但是用 C 编程。我正在开发一个名为 EtherDogs 的项目,它是一个网络数据包分析器。如何为项目编写 python 包装器?
如果我必须为它做一个 C++ 包装器,这并不难,但我如何在 python 中做呢?
【问题讨论】:
您应该尝试像SWIG 这样的包装器生成器。手工编写胶水代码是重复和无聊的。为什么不让计算机为您完成简单的部分?
SWIG 将接收您的源文件和(最小)接口规范。它将生成 Python 代理类和 C/C++ 代码。您将 C/C++ 代码编译成 Python 扩展库,然后像使用纯 Python 库一样使用它。在后台,SWIG 代理类生成将 Python 类型转换为/从原始 C 函数调用转换的句柄。
作为额外的好处,包装器生成器(包括 SWIG)通常可以为许多不同的高级语言创建绑定,而您只需很少或不需要额外的工作。
【讨论】: