Bir Python uygulamasından bir C kütüphanesini çağırmak istiyorum. Tüm API'yı, yalnızca benim durumumla ilgili olan işlevleri ve veri türlerini sarmak istemiyorum. Gördüğüm gibi üç seçeneğim var:
- C de gerçek bir genişletme modülü oluşturun.
- İlgili parçaları C kitaplığından Python'a göstermek için Cython'u kullanın .
- Python'da her şeyi
ctypes
harici kitaplıkla iletişim kurmak için yapın.
2) veya 3) daha iyi bir seçim olup olmadığından emin değilim. 3) avantajı ctypes
, standart kütüphanenin bir parçasıdır ve ortaya çıkan kod saf Python olacaktır - ancak bu avantajın ne kadar büyük olduğundan emin değilim.
Her iki seçimde de daha fazla avantaj / dezavantaj var mı? Hangi yaklaşımı öneriyorsunuz?
Edit: Tüm cevaplarınız için teşekkürler, onlar benzer bir şey yapmak isteyen herkes için iyi bir kaynak sağlar. Karar, elbette, hala tek bir dava için verilecek - kimse "Bu doğru şey" cevabı. Kendi durumum için, muhtemelen ctypes ile gideceğim, ama aynı zamanda başka bir projede Cython'u denemeyi dört gözle bekliyorum.
Tek bir doğru cevap olmadığı için, bir tanesini kabul etmek biraz keyfi; FypeBird'in cevabını seçtim çünkü ctypes hakkında iyi bir fikir veriyor ve şu anda da en yüksek oy alan cevap. Ancak, iyi bir genel bakış için tüm cevapları okumanızı öneririm.
Tekrar teşekkürler.