开发者

Python C interoperability

I wish to wrap an existing C (pure C that is. No C++) library into Python so that I can cal开发者_StackOverflowl it from Python scripts. Which approach among the various available (C Api, SWIG etc.) would be the most suitable?


go with Ctypes, it is part of standard distribution and works very well. basically you can wrap C structures and types in python classes, as well as functions. Some types and functionality is already provided by library.

ctypes

couple caveats though: passing triple pointers to C routines is not obvious (if you have to), and I could not get it to work with static libraries on Linux, DLL and shared objects are fine.


SWIG is great for doing this. Here is a sample tutorial: http://www.swig.org/Doc1.3/Python.html.


Since your code is "pure" C you might consider using Pyrex/Cython. This is not a voting issue and Cython has already been mentioned. I am just clarifying why it is a better choice for pure C.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜