Building Tools für Extension Modules

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Building Tools für Extension Modules

Beitragvon CM » Sonntag 12. Dezember 2004, 00:20

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
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: Building Tools für Extension Modules

Beitragvon Leonidas » Sonntag 12. Dezember 2004, 09:46

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..
Zuletzt geändert von Leonidas am Sonntag 12. Dezember 2004, 11:24, insgesamt 1-mal geändert.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Sonntag 12. Dezember 2004, 10:14

Hi!

Zu Fortran fällt mir noch f2py ein.

Gruß, mawe
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Sonntag 12. Dezember 2004, 13:30

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

Code: Alles auswählen

#!/usr/bin/env python
import this
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Montag 13. Dezember 2004, 19:23

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder