SORU
29 EYLÜL 2009, Salı


Python/C Bağlayıcı Kütüphane karşılaştırma

Yine de soracağım bu soruyu bir yinelenen, ancak konunun (özellikle) bir tane bulamadım sanki hala hissediyorum:

/C bağlama kütüphaneleri ve neden ne tavsiye edersiniz Python istiyorsunuz? Buna ek olarak, deneyiminiz ne oldu ya da başka kullanmayı denedin mi? Ayrıca, bağlayıcı özellikleri içerir ve bunların kullanımı vardır kişisel veya profesyonel oldu?

Bir şeyleri tekmelemek için, burada geçenlerde denedim biraz (kişisel kullanım için):

YUDUM

  • Destekler Python 2 ve 3
  • Doğru şartlar altında uber-otomatik olabilir
  • Uber-otomatik olmadığı zamanlarda çoğunlukla tekrar oluşur .h dosyaları ve sağlayan ipuçları
  • Python yanı sıra birçok diğer diller (Java, Ruby, Lua, vb.) destekler
  • Çıkış yerel bir dosya (bir derlenmiş olması .her ikisi de oluşur pyd) ve bir python "" . sarıcı
  • Bağlamaları oldukça yalın görünüyor.
  • Özellikleri (değerler alıcı/ayarlayıcı tarafından erişilebilir) desteklemek için görünür değildir
  • Çok iyi belgelenmiş, kurulum yönergeleri takip etmek kolay
  • Google tarafından (hey, bunun BİR anlamı olmalı, değil mi?) kullanılır

::Boost Python

  • Python 2 ve 3 destekler
  • Sözdizimi yeni gelenler için zor olabilir, ama basit ve çoğunlukla ücretsiz yığılmayı.
  • C şablonlar ağır kullanımı (iyi ya da kötü bir şey olabilir)
  • Büyük olan Boost kütüphane, bir parçası olarak dağıtılmış. () Yararlı, ama büyük
  • Kütüphane derleme başlangıçta hayal kırıklığı içinde bir egzersiz olabilir
  • Önemli ölçüde derlemek kez artırabilir
  • Bazı ilginç sorunlar geri belirtme gibi yerli tür döndüren bir işlev için politikalar değer
  • Çok sağlam, iyi test kütüphane kararlı
  • Destek özellikleri yok
  • Belgeleri ve çok mutlu oldum. Ama daha gelişmiş kullanımı iyi tanıtım öğreticiler biraz ihmal edilir. Belgeler ayrıca, parçalanmış: önemli ölçüde farklıdır tüm kitaplık oluşturma konusunda en az üç farklı dersler vardır.
  • Bağlamaları biraz şişkin olduğu için bir üne sahip

Çoğunlukla gerçekten özellik desteğe ihtiyacı var çünkü şu anda Boost kullanıyorum::Python, ama insanların fikirlerini diğer kütüphanelere orada neler olduğunu görmek için çok merak ediyorum!

CEVAP
25 EKİM 2011, Salı


Boost python, pyplusplus ile kullanıyorum.

::Boost Python

  • savaş sertleştirilmiş-yaygın olarak kullanılan araç sarma olgun
  • destekler boost beri Python 3 sürümü itibarıyla 1, 43
  • Py python modülü, gccxml göre, daha büyük projeler kaydırma otomatik hale getirmek için kullanın. Subversion deposundan son sürümünü indirin.
  • sarar iç sınıflar
  • ilgili python özellikleri için karmaşık C özellikleri kapsamlı bir eşleme: STL kapları, özel durumlar, iç sınıflar, özellikleri
  • diller python dışında desteklemiyor
  • derleme sarma çok zaman alıcı olabilir
  • büyük modül boyutu mobil/gömülü platformlar için sorun olabilir
  • http://www.boost.org/doc/libs/1_47_0/libs/python/doc/

Yudum

  • savaş sertleştirilmiş-yaygın olarak kullanılan araç sarma olgun
  • Ruby python dahil yanı sıra diğer diller için mahfazalar oluşturmak ve Java
  • desteklemiyor iç sınıflar sarma yapar. Bu karmaşık C API sarma zaman bu iş benim için kırıcı oldu.

Manuel, C ve python API

  • teorik olarak diğer paketleme yöntemleri yapabileceği bir şey
  • eğer sadece nesneleri birkaç kaydırmak istiyorsanız güçlü aday yöntemler/

ctypes

  • /tüm python yapılması gerekir

Cython

YUDUM

  • PyQt4 proje için oluşturulan

Shiboken

  • PyQt4 öykünen PySide proje için oluşturulan
  • mobil platformlar için optimize edilmiş olabilir?

Robin

PyCXX

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Deany Boii

    Deany Boii

    27 Kasım 2007
  • karneson

    karneson

    23 Temmuz 2006
  • Louis C.K.

    Louis C.K.

    18 HAZİRAN 2006