Python C互操作性

时间:2010-01-27 04:18:50

标签: python c interop

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

3 个答案:

答案 0 :(得分:7)

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

ctypes

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

答案 1 :(得分:4)

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

答案 2 :(得分:0)

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