Seite 1 von 1

Building Tools für Extension Modules

Verfasst: Sonntag 12. Dezember 2004, 00:20
von CM
Hi,

eine Frage an Euch, die Extension Modules schreiben. Gibt es irgendein "Building Tool" das ihr bevorzugt? Und warum?
Bisher habe ich nur kleine Module mal kurz in C geschrieben und direkt eingebunden, aber nächsten Jahr möchte ich gerne etwas mehr in der Richtung machen. Und da dachte ich, das es ganz nett wäre ein paar Stimmen vorab zu hören ;-).

Was ich bisher gefunden habe:
- SWIG (für C++ und C)
- boostPython (für C++ und C - finde ich einen ziemlichen Hammer mit einer schwer verständlichen Dokumentation, oder?)
- CXX (für C++)
- und SIP für C++
- außerdem pyfort für FORTRAN Code (kommt man bei manchen numerischen Algorithmen nicht so recht drum herum)
- und bgen für Mac-Nutzer (obwohl ich einer bin, werde ich da aber wohl einen Bogen drum machen, weil zu spezifisch)
- und schließlich auch PyObjC (für Objective C, das für mich trotz rudimentärer Objective C-Kenntnisse nicht in frage kommt - es sei denn es gibt auch verbreitete Objective C-Compiler für Linuxboxen - ist das so?)

Ich habe keine (große) Erfahrung mit einem dieser Tools, daher: Was sind eure Erfahrungen mit dem einen oder anderen Tool? Vor allem hinsichtlich Benutzerfreundlichkeit, Support und Dokumentation - und Debuging. Oder gibt es eines, das in meiner Liste gar nicht auftaucht, aber eurer Meinung nach unbedingt auftauchen sollte, weil es alle aussticht?
(Ich suche eher etwas für C und C++, bin aber auch neugierig, falls jemand noch andere Dinge beisteuern kann.)

Habe überlegt, ob ich dies hier unter allgemeine Fragen stelle, mich dann aber doch für den offtopic-Bereich entschieden ;-). Und jetzt freue ich mich auf eure Antworten.

Gruß,
Christian

Re: Building Tools für Extension Modules

Verfasst: Sonntag 12. Dezember 2004, 09:46
von Leonidas
Ich habe damit zwar nicht so sehr erfahrung, aber ich kann sicher auch etwas Beitragen.
CM hat geschrieben:- SWIG (für C++ und C)
Nutzen die meisten C-Wrapper, habe ich auch mal benutzt, scheint ganz okay für automatische Generierung von Wrappern zu sein.
CM hat geschrieben:- boostPython (für C++ und C - finde ich einen ziemlichen Hammer mit einer schwer verständlichen Dokumentation, oder?)
Ich habe echt nicht kapiert wie das funktionieren soll.
CM hat geschrieben:- und SIP für C++
Soll angeblich für C++ besser sein als SWIG, damit ist ja PyQt gemacht..
CM hat geschrieben:- und schließlich auch PyObjC (für Objective C, das für mich trotz rudimentärer Objective C-Kenntnisse nicht in frage kommt - es sei denn es gibt auch verbreitete Objective C-Compiler für Linuxboxen - ist das so?)
gcc mit -lobjc und schon hast du einen Objective-C Compiler an der Hand. Zumindest geht das mit meinem gcc 3.2.3.

Vielleicht würde dich ja Pyrex interessieren..

Verfasst: Sonntag 12. Dezember 2004, 10:14
von mawe
Hi!

Zu Fortran fällt mir noch f2py ein.

Gruß, mawe

Verfasst: Sonntag 12. Dezember 2004, 13:30
von Dookie
Hi Christian,

es kommt halt stark darauf an, was du machen willst. Ob bestehenden C/C++ Code für Python verfügbar machen, dann sind sicher swig und Consorten vorzuziehen, oder ein Modul "from scratch" für Python mit C/C++ erstellen, dann würde ich das "zu Fuß" machen mit der C-API und Blick in die Sourcen von Python. Letzteres habe ich auch schon gemacht und ist, wenn man mal das Prinzip verstanden hat auch gar nicht so schwer. Seit Python 2.3 ist die API auch noch einfacher geworden.
Zu den von dir genannten Tools kann ich auch nicht viel sagen. Ich hab sie mir nur kurz angeschaut, als ich das erste mal ein C-Modul für Python erstellen wollte.
Am Meisten zum Erstellen von C-Modulen habe ich aus den Pythonsourcen gelernt, auch über die Interna von Python kann man da viel herauslesen.


Gruß

Dookie

Verfasst: Montag 13. Dezember 2004, 19:23
von CM
Hi allerseits,

vielen Dank für eure Kommentare. Na, ich werde dann mal rumschnüffeln und ausprobieren. (Freue mich, daß ich nicht der Einzige bin, der boost "etwas kompliziert" findet.)

Besten Gruß,
Christian