Seite 1 von 1

Wenn das Projekt größer wird...

Verfasst: Samstag 12. November 2005, 20:38
von Gast
Grüße,

Bei mir ist es mittlerweile so: Ich habe ein Programm. Das benutzt selbst definierte Module. Die liegen in einem Pfad eins hoch, 2 rechts und wieder eins runter...
Außerdem liest es Dateien vom Ort xyz.
Alles in allem bedient es sich mal von hier und mal von dort. Ich kann das zwar zum jetztigen Zeitpunkt noch überschauen, aber ich glaube später würde das dann etwas zu kompliziert werden.

Wie ließe sich das nun alles zusammenfassen? Mir schwebt so was in der Art vor wie halt die Ordnerstruktur von jedem halbwegs normalen Programm. Alles in einem Ordner, ein festgesurrtes Paket.

cu,
qweet

Verfasst: Samstag 12. November 2005, 23:44
von Leonidas
Wie wäre es, einfach alle benötigten Module in einen Ordner zusammenzuwerfen (ggf. noch mit Unterordnern)? Das funktioniert auch bei größeren Projekten wie PyPy recht gut.

Verfasst: Sonntag 13. November 2005, 15:59
von gerold
Hi!

Es gibt für diesen Fall natürlich wieder mehrere Wege. Einen den ich gerne gehe ist folgender:

Beim Setup, eines meiner Programme mit mehreren Modulen und Unterordnern, hinterlege ich in einer Umgebungsvariable den Pfad zum Hauptordner des Programms.

Wenn ich von einem anderen Programm aus, auf ein Modul des vorher installierten Programms zugreifen muss, hole ich mir die benötigten Pfade vor dem Importieren in den Python-Pfad.

Code: Alles auswählen

import os
import sys

# Pythonpfad mit dem Pfad zu den Tools erweitern.
gp_sqlrunner_dir = os.environ.get("GPSQLRUNNER_DIR")
sys.path.append(os.path.join(gp_sqlrunner_dir, "tools"))

import getconndata_gdb # Eines der GP-SQLRunner-Tools
import datetimeselect2 # Eines der GP-SQLRunner-Tools
import datetime
So kann ich also von einem neuen Programm aus, die Tools/Module eines anderen, alten Programmes importieren.

mfg
Gerold
:-)

Verfasst: Montag 14. November 2005, 09:40
von jens
Warum benutzt du dabei get() ??? Es reicht doch eigentlich ein os.environ["GPSQLRUNNER_DIR"]

.get() macht doch nur Sinn, wenn du einen Alternativ-Wert haben möchtest, wenn der Key nicht existiert...

Verfasst: Montag 14. November 2005, 10:02
von gerold
jens hat geschrieben:Warum benutzt du dabei get() ??? Es reicht doch eigentlich ein os.environ["GPSQLRUNNER_DIR"]
Haarspalter... :D :wink:

lg
Gerold
:-)