Library includen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
antaeus
User
Beiträge: 48
Registriert: Dienstag 19. September 2006, 10:10

Ich bin ziemlich sicher, dass meine Frage hier schon irgendwer gestellt und auch beantwortet bekommen hat, aber ich finde den entsprechenden Thread bzw. die Info an sich im Netz nicht, da jede Suche enorme Mengen von wenig passenden Hits zurück gibt...

Mein Problem: Ich möchte eine library (libosip - http://www.gnu.org/software/osip/doc/html/) in ein eigenes Skript includen und verwenden. Ich weiß nur nicht, ob es generell möglich ist libraries, die nicht in Python geschrieben sind, zu includen. Falls das möglich ist, weiß ich nicht wie ich das denn bewerkstellige.

Git es zu diesem Thema evtl. ein Tutorial oder etwas dergleichen?

Viele Grüße & Danke für eure Antworten!
capsule5
User
Beiträge: 28
Registriert: Sonntag 10. Dezember 2006, 18:49

Auszug aus Python Library Reference:
New in version 2.5.
ctypes is a foreign function library for Python. It provides C compatible data types, and allows to call functions in dlls/shared libraries. It can be used to wrap these libraries in pure Python.
http://docs.python.org/dev/lib/module-ctypes.html
http://python.net/crew/theller/ctypes/

Gruß
Christoph
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

antaeus hat geschrieben:Ich weiß nur nicht, ob es generell möglich ist libraries, die nicht in Python geschrieben sind, zu includen. Falls das möglich ist, weiß ich nicht wie ich das denn bewerkstellige.
Klingt, als suchst du nach ctypes. Siehe z.B. auch diesen Thread:
http://www.python-forum.de/topic-7814.html
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hoi,

nein, ich finde er es klingt, als ob nach SWIG gesucht wird. (Tut mir leid, an der Stelle hatte sich der Browser vergallopiert, weswegen hier Gibberish stand.) Oder ggf. auch boost python, was aber nicht so einfach zu nutzen ist.
Der Vorteil beider gegenüber ctypes ist definitiv, daß man sich die Arbeit nur einmal macht - Veränderungen in der Library sind dann wesentlich leichter wieder zu übernehmen.

HTH
Christian

edit: Einmal neu angefangen wegen Browserproblem.
Benutzeravatar
sunmountain
User
Beiträge: 89
Registriert: Montag 13. März 2006, 17:18

CM hat geschrieben:Hoi,

nein, ich finde er es klingt, als ob nach SWIG gesucht wird. (Tut mir leid, an der Stelle hatte sich der Browser vergallopiert, weswegen hier Gibberish stand.) Oder ggf. auch boost python, was aber nicht so einfach zu nutzen ist.
Der Vorteil beider gegenüber ctypes ist definitiv, daß man sich die Arbeit nur einmal macht - Veränderungen in der Library sind dann wesentlich leichter wieder zu übernehmen.

HTH
Christian

edit: Einmal neu angefangen wegen Browserproblem.
ctypes kann man nutzen, wenn es um einzelne Funktionen geht,
z.B. strftime,printf,... o.ä.
Ich würde (auch aus eigener Erfahrung) SWIG nehmen.
Es nimmt einem die ganze Arbeit ab und man hat dann ein
"echtes" Python Modul mit "echten" Python Objekten.
Mit ctypes ist man Gezwungen alle (!) Datenstrukturen aus der C/C++
Bibliothek per Hand nachzubilden und dafür zu sorgen, das die Laufzeitumgebung das mitmacht.
boost.python kenne ich auch aus der Praxis und ich persönlich finde
es ziehmlich kompliziert.
Man muss selbst alle Klassen, die man nutzen will zusätzlich
von den boost.python Klassen erben lassen.
Nicht gerade intuitiv.
Viele Projekte setzen erfolgreich SWIG ein.
antaeus
User
Beiträge: 48
Registriert: Dienstag 19. September 2006, 10:10

Ok, vielen dank für eure Hilfe. Swig klingt gut, das werde ich mir mal anschauen.

:)

Bin mal gespannt, wie ich damit zurecht komme und ob =)
Antworten