Python C互操作性

我希望将现有的C(纯C,无.C ++)库包装到Python中,以便我可以从Python脚本中调用它。 各种可用的方法(C Api,SWIG等)最合适?

与Ctypes一起使用,它是标准发行版的一部分,效果很好。 基本上你可以在python类中包装C结构和类型,以及函数。 库已经提供了一些类型和function。

ctypes的

但需要注意的是:将三重指针传递给C例程并不明显(如果必须),我无法在Linux上使用静态库,DLL和共享对象也没问题。

SWIG非常适合这样做。 这是一个示例教程: http : //www.swig.org/Doc1.3/Python.html 。

由于您的代码是“纯粹的”C,您可以考虑使用Pyrex / Cython。 这不是投票问题,已经提到过Cython。 我只是澄清为什么它是纯C的更好选择。