2010-01-27 140 views
3

我希望將現有的C(純C即無C++)庫封裝到Python中,以便我可以從Python腳本中調用它。各種可用(C Api,SWIG等)中哪種方法最適合?Python C互操作性

+0

3個答案,3種不同的建議。不完全是你所希望的,我猜測;) – 2010-01-27 04:30:59

+2

建議關閉作爲主觀和論證。所有最好的問題都是這樣的。 – whatnick 2010-01-27 05:34:46

回答

7

與Ctypes一起使用,它是標準分發的一部分,工作得很好。 基本上你可以在Python類中包裝C結構和類型以及函數。一些類型和功能已經由庫提供。

ctypes

警告夫婦雖然:經過三重指針C例程並不明顯(如果有),我無法得到它與Linux上的靜態庫工作,DLL和共享對象都很好。

+0

謝謝未知。我甚至不知道ctypes存在。它看起來更簡單,但卻與其他人一樣有效。 – 2010-01-27 14:11:09

0

由於您的代碼是「純」C,因此您可以考慮使用Pyrex/Cython。這不是一個投票問題,Cython已經被提及。我只是澄清了爲什麼它是純C更好的選擇。