Module und Pakete in Python organisieren

Sobald Programme wachsen, brauchst du Struktur. Lerne, wie du Code in Module und Pakete aufteilst, importierst und sauber organisierst.

Teilen
Module und Pakete in Python organisieren

Solange ein Programm klein ist, passt alles bequem in eine einzige Datei. Doch sobald dein Projekt wächst, wird eine riesige Datei schnell unübersichtlich. Die Lösung heißt Module und Pakete: Damit teilst du deinen Code in logische Einheiten auf, die du wiederverwenden und gezielt importieren kannst. In diesem Beitrag lernst du, wie du eigene Module schreibst, sie importierst, zu Paketen zusammenfasst und die riesige Standardbibliothek von Python nutzt.

Was ist ein Modul?

Ein Modul ist einfach eine Python-Datei mit der Endung .py, die Funktionen, Klassen oder Variablen enthält. Du kannst den Inhalt einer solchen Datei in einer anderen Datei nutzen, indem du sie importierst. Stell dir vor, du hast eine Datei rechner.py:

# Datei: rechner.py
def addiere(a, b):
    return a + b

def subtrahiere(a, b):
    return a - b

PI = 3.14159

Diese Datei ist nun ein Modul namens rechner. In einer anderen Datei im selben Ordner kannst du seine Funktionen verwenden, ohne sie noch einmal zu schreiben.

Module importieren

Es gibt mehrere Wege, ein Modul zu importieren. Mit import rechner lädst du das ganze Modul und greifst über den Modulnamen darauf zu. Mit from ... import ... holst du dir gezielt einzelne Funktionen.

# Variante 1: ganzes Modul importieren
import rechner

print(rechner.addiere(2, 3))  # 5
print(rechner.PI)             # 3.14159

# Variante 2: gezielt importieren
from rechner import subtrahiere
print(subtrahiere(10, 4))     # 6

# Variante 3: mit Aliasname
import rechner as r
print(r.addiere(1, 1))        # 2

Welche Variante du wählst, ist Geschmackssache. import modul macht klar, woher eine Funktion stammt, während from modul import funktion kürzer ist. Vermeide aber from modul import *, weil dadurch unklar wird, welche Namen importiert wurden.

Der __name__-Trick

Jedes Modul hat eine eingebaute Variable __name__. Wird die Datei direkt ausgeführt, hat __name__ den Wert "__main__". Wird sie dagegen importiert, enthält __name__ den Modulnamen. Damit kannst du Testcode schreiben, der nur beim direkten Ausführen läuft.

# Datei: rechner.py
def addiere(a, b):
    return a + b

if __name__ == "__main__":
    # Dieser Block läuft nur bei direkter Ausführung,
    # nicht beim Import.
    print("Test:", addiere(2, 3))  # Test: 5

So kannst du ein Modul gleichzeitig als wiederverwendbare Bibliothek und als eigenständiges Skript nutzen. Beim Import bleibt der Testblock einfach stumm.

Pakete: Module gruppieren

Ein Paket ist ein Ordner, der mehrere zusammengehörige Module enthält. In älteren Python-Versionen brauchte ein Paket eine Datei __init__.py; sie kann auch heute noch leer vorhanden sein, um den Ordner ausdrücklich als Paket zu kennzeichnen. Eine typische Struktur sieht so aus:

mein_projekt/
    main.py
    mathe/
        __init__.py
        grundrechnen.py
        geometrie.py

Aus main.py importierst du dann Module aus dem Paket über die Punkt-Schreibweise:

# Datei: main.py
from mathe.grundrechnen import addiere
from mathe import geometrie

print(addiere(5, 7))                # 12
print(geometrie.kreisflaeche(3))    # z. B. 28.27

So entsteht eine klare Hierarchie: Das Paket mathe bündelt thematisch verwandte Module, die du gezielt ansprechen kannst.

Die Standardbibliothek nutzen

Python bringt eine riesige Standardbibliothek mit – fertige Module für unzählige Aufgaben, die du sofort importieren kannst, ohne etwas zu installieren. Damit musst du das Rad nicht neu erfinden.

import math
import random
import os

print(math.sqrt(16))        # 4.0
print(math.pi)              # 3.141592653589793

print(random.randint(1, 6)) # zufällige Zahl 1-6
print(random.choice(["a", "b", "c"]))  # zufällige Auswahl

print(os.getcwd())          # aktuelles Arbeitsverzeichnis

Module wie math, random, os, datetime oder json decken viele Alltagsaufgaben ab. Ein Blick in die offizielle Dokumentation lohnt sich, bevor du etwas selbst programmierst.

Fazit

Module und Pakete sind das Werkzeug, mit dem du größere Python-Projekte übersichtlich hältst. Du hast gelernt, wie eine .py-Datei zum Modul wird, welche Import-Varianten es gibt, wie der __name__-Trick Testcode steuert, wie du Module in Paketen gruppierst und wie du die mächtige Standardbibliothek nutzt. Mein Tipp: Zerlege deinen Code früh in sinnvolle Einheiten – eine Datei pro Themenbereich. So bleibt dein Projekt wartbar, und einzelne Teile lassen sich leicht in anderen Programmen wiederverwenden.