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!
Library includen
Auszug aus Python Library Reference:
http://python.net/crew/theller/ctypes/
Gruß
Christoph
http://docs.python.org/dev/lib/module-ctypes.htmlNew 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://python.net/crew/theller/ctypes/
Gruß
Christoph
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Klingt, als suchst du nach ctypes. Siehe z.B. auch diesen Thread: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.
http://www.python-forum.de/topic-7814.html
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.
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.
- sunmountain
- User
- Beiträge: 89
- Registriert: Montag 13. März 2006, 17:18
ctypes kann man nutzen, wenn es um einzelne Funktionen geht,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.
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.