Gut verschnürt
Funktionen, Module und Pakete in Python
Modul, wo bist du?
Python findet zu importierende Module mit Hilfe der Verzeichnisliste sys.path. Es ist möglich, diese während der Laufzeit eines Programms verändern. Bei einem import Modulname
sucht der Interpreter nacheinander alle Verzeichnisse nach dem Modul Modulname ab.
Die zugehörige Datei ist meistens eine Python-Datei (Modulname
.py), seltener eine dynamisch zu bindende Bibliothek (Modulname
.so). Da das Bibliotheksverzeichnis der Python-Distribution stets im Suchpfad ist, brauchen Sie für mitgelieferte Module diesen Pfad nicht extra zu setzen.
Paketdienst
Besteht Ihre Python-Software aus zahlreichen Modulen, bietet es sich an, diese in Unterverzeichnissen zu verstauen. Diese Unterverzeichnisse entsprechen sogenannten Paketen, wenn sie eine Datei __init__.py enthalten (die leer sein darf). Entspricht die Verzeichnisstruktur beispielweise Listing 3 importieren Sie mit
from tools import template from web import request
einzelne Module aus den Paketen. Damit landen die Namen template und request im Namensraum desjenigen Moduls, das diese import-Anweisungen enthält.
Listing 3
tools/
__init__.py
database.py
template.py
web/
__init__.py
form.py
request.py
response.py
Der Autor
Dr.-Ing. Stefan Schwarzer verwendet Python seit sechs Jahren und hat bei Addison-Wesley "Workshop Python" veröffentlicht. Er ist selbstständiger Softwareentwickler und ist unter mailto:sschwarzer@sschwarzer.net zu erreichen.
Infos
[1] Pydoc: http://docs.python.org/lib/module-pydoc.html, http://pydoc.org/
[2] Generatorfunktionen: http://www.python.org/doc/2.2.3/whatsnew/node5.html
[3] Eingebaute Funktionen: http://docs.python.org/lib/built-in-funcs.html
[4] Diskussions-Thread zu import: http://python.net/pipermail/python-de/2006q2/007705.html
[5] Liste der Python-Module: http://docs.python.org/lib/modindex.html
[6] Python Library Reference: http://docs.python.org/lib/contents.html
[7] Web-Frameworks: http://wiki.python.org/moin/WebProgramming
[8] FTP-Client-Bibliothek ftputil: http://ftputil.sschwarzer.net/



