Wenn das Projekt größer wird...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Gast

Wenn das Projekt größer wird...

Beitragvon Gast » Samstag 12. November 2005, 20:38

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

Beitragvon Leonidas » Samstag 12. November 2005, 23:44

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Sonntag 13. November 2005, 15:59

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Montag 14. November 2005, 09:40

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...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Montag 14. November 2005, 10:02

jens hat geschrieben:Warum benutzt du dabei get() ??? Es reicht doch eigentlich ein os.environ["GPSQLRUNNER_DIR"]

Haarspalter... :D :wink:

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder