Python Material Installation Dokumentation PythonKara Grundlagen Namensräume Funktionen Testen Strings Dictionary Listen Zeitmessungen Zufall Bits+Bytes Module Sockets xml serielle Schnittstelle Python in HTML Turtle xturtle Tkinter OOP Threads Zusicherungen exe Patterns GnuPlot Goto MySQL CGI Dateien Exceptions Grafik Mathematik Fischertechnik Unicode funktional Iterator Sound C Debugger regex Pfade Docstrings Django Bluetooth format Bytecode signal
Pfad: Startseite / Fächer / Informatik / Python / Module
Autor: mk
04.12.2010 12:58
1445
Module

Projektverwaltung in Python

Bei kleineren Projekten sind die beteiligten Klassen oft noch in einer einzigen Datei. Wobei auch hier bereits das Problem auftaucht, dass eine Änderung an einer Klasse Änderungen an mehreren Dateien nach sich ziehen kann. Besser ist es, auf gewisse Klassen von verschiedenen Projekten aus zugreifen zu können. Die entsprechenden Dateien könnte man dauerhaft verfügbar machen, indem man sie z.B. nach ../python25/lib/site-packages kopiert. Dort wiederum verliert man schnell den Überblick. Schön wäre es, wenn man den Pfad zu einer Datei, die importiert werden soll, angeben könnte. Das kann man mit einem Kniff (danke Rouven!) erreichen. Angenommen, ein Python-Programm in Ordner A möchte auf ein Modul in einem Nachbarordner B zugreifen. Dazu wird einfach temporär der in sys.path abgespeicherte Suchpfad erweitert. Im folgenden Beispiel benutzt a.py die Datei b.py.

a.py in A:

import sys
print sys.path             # DEBUG
pfad = '..\\B'             # hier kommt der fehlende absolute oder relative Pfad hin
if not pfad in sys.path:
    sys.path.append(pfad)
print sys.path             # DEBUG

import b
print 'Hier ist a!'
b.fb()

b.py in B:

def fb():
    print 'Hier ist b!'

Eigene Module dauernd verfügbar machen

Modul z.B. StrToHexBin.py nach ../python25/lib/site-packages kopieren

Links