我希望將現有的C(純C即無C++)庫封裝到Python中,以便我可以從Python腳本中調用它。各種可用(C Api,SWIG等)中哪種方法最適合?Python C互操作性
3
A
回答
7
與Ctypes一起使用,它是標準分發的一部分,工作得很好。 基本上你可以在Python類中包裝C結構和類型以及函數。一些類型和功能已經由庫提供。
警告夫婦雖然:經過三重指針C例程並不明顯(如果有),我無法得到它與Linux上的靜態庫工作,DLL和共享對象都很好。
+0
謝謝未知。我甚至不知道ctypes存在。它看起來更簡單,但卻與其他人一樣有效。 – 2010-01-27 14:11:09
4
SWIG非常適合這樣做。這裏是一個示例教程:http://www.swig.org/Doc1.3/Python.html。
0
由於您的代碼是「純」C,因此您可以考慮使用Pyrex/Cython。這不是一個投票問題,Cython已經被提及。我只是澄清了爲什麼它是純C更好的選擇。
相關問題
- 1. C#-Excel互操作性
- 2. C++ JNI互操作性
- 3. 互操作性
- 4. bool和C/C++的互操作性
- 5. 互操作性c c#結構序列
- 6. 和C#的互操作性C++(.NET)
- 7. Python XML + Java XML互操作性
- 8. Hadoop互操作性
- 9. C#的Excel互操作性:在一次
- 10. C#4.0動態Office互操作性能
- 11. C++到D的互操作性
- 12. Swift數組與C的互操作性?
- 13. Threaded Erlang C-Node(cnode)互操作性howto?
- 14. .NET和C++的互操作性
- 15. C# - Java互操作
- 16. COM互操作性混淆
- 17. Jacorb/Tao互操作性
- 18. Winforms WPF互操作性能
- 19. Java和.Net互操作性
- 20. wsdl互操作性問題
- 21. DDS中的互操作性
- 22. haskell scala互操作性
- 23. WCF互操作性測試
- 24. Web服務互操作性
- 25. 實時Java互操作性
- 26. JFXtras和FXML互操作性
- 27. WCF \ ASP.NET互操作性
- 28. .NET互操作性問題
- 29. iPhone/.NET WCF互操作性
- 30. CUDA OPENGL互操作性:cudaGLSetGLDevice
3個答案,3種不同的建議。不完全是你所希望的,我猜測;) – 2010-01-27 04:30:59
建議關閉作爲主觀和論證。所有最好的問題都是這樣的。 – whatnick 2010-01-27 05:34:46