AW: [Python-de] Programme aus mehreren Modulen

Uwe Schmitt schmitt at num.uni-sb.de
Die Feb 17 10:09:35 CET 2004


> > Hallo!
> >
> > Ich mache mir bereits seit längerem Gedanken darüber, was wohl "Der
> > Richtige" Weg ist, Programme, die aus mehreren Modulen bestehen,
> > auszuliefern, bin aber zu keinem vernünftigen Ergebnis gekommen.
> >
> > Folgende Situation sei gegeben: Ein als "Hauptprogramm" zu startendes
> > Modul (z.B. "app.py") und weitere Module, die von diesem benötigt
> > werden.
> >
> > Am einfachsten ist es sicherlich, alles in ein Verzeichnis zu packen.
> > Von dort aus gestartet, kann app.py alle Module problemlos importieren.
> > Das ist vermutlich unter Windows ein perfekt gangbarer Weg (obwohl ich
> > mich mit Windows nicht so recht auskenne), in der Unixwelt würde ich
> > eigentlich nur app.py im Pfad unter blabla/bin erwarten. Nur wo steck'
> > ich den Rest hin?

Wo Du die Module hinpackst hängt von deren Wiederverwendbarkeit ab:
Module die lediglich deiner Applikation dienen gehören bestimmt nicht
unter ...../site-packages.

Wenn Du viele Module zu Deiner Applikation hast, würde ich die je
nach Semantik groupiert in Unterverzeichnisse packen:

z.B. ein Unterverzeichnis utilities. Darin legst du "__init__.py" an,
auch wenn die Datei leer ist, und z.b. ein Modul conversion.py

Dann schreibst Du in app.py die Zeile

    import utilities.conversion

oder

    from utilities.conversion import euro2dollar

Das führt zum einen zu Übersichtlichkeit in den Verzeichnissen, und
das Ausliefern ist auch recht einfach.

Gruß, Uwe