0Pricing
Python Academy · Lektion

Pakete und __init__.py

Organisieren Sie Module mit einer geeigneten Verzeichnisstruktur in Paketen.

Pakete und __init__.py ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist ein Paket?

Ein Paket ist ein Verzeichnis, das eine __init__.py-Datei und ein oder mehrere Module enthält. Python behandelt jedes solche Verzeichnis als Paket, aus dem Sie importieren können.

mypackage/
    __init__.py
    utils.py
    math_helpers.py

Die Datei __init__.py

__init__.py wird ausgeführt, wenn das Paket importiert wird. Die Datei kann leer sein oder ausgewählte Namen für aufrufenden Code bereitstellen.

# mypackage/__init__.py
from .utils import helper
from .math_helpers import add

Aus einem Paket importieren

Verwenden Sie die Punktnotation, um Submodule oder in __init__.py definierte Namen zu importieren.

import mypackage
from mypackage import helper
from mypackage.math_helpers import add
print(add(2, 3))

Unterpakete

Pakete können verschachtelt sein: Ein Unterverzeichnis mit einer eigenen __init__.py wird zu einem Unterpaket.

mypackage/
    __init__.py
    network/
        __init__.py
        http.py

Relative Importe

Verwenden Sie innerhalb eines Pakets relative Importe mit einem vorangestellten Punkt, um auf benachbarte Module zu verweisen, ohne den Paketnamen fest zu codieren.

# mypackage/network/http.py
from ..utils import helper   # two levels up

Absolute und relative Importe

Absolute Importe sind eindeutig und werden bevorzugt. Relative Importe sind innerhalb großer Pakete nützlich, um lange Namen zu vermeiden.

# Absolute
from mypackage.utils import helper

# Relative (inside mypackage)
from .utils import helper

__all__ in __init__.py

Definieren Sie __all__, um zu steuern, welche Namen from package import * exportiert.

# mypackage/__init__.py
__all__ = ['helper', 'add']
from .utils import helper
from .math_helpers import add

Namespace-Pakete (PEP 420)

Python 3.3+ unterstützt Namespace-Pakete – Verzeichnisse ohne __init__.py. Das ist nützlich, um ein Paket auf mehrere Verzeichnisse aufzuteilen.

# No __init__.py needed
# Just have the directory and import normally
import myns.module

Initialisierung von __init__ im Paket

Verwenden Sie __init__.py, um Konstanten auf Paketebene festzulegen, die Protokollierung zu konfigurieren oder umfangreiche Submodule verzögert zu laden.

# mypackage/__init__.py
import logging
logging.getLogger(__name__).addHandler(logging.NullHandler())
VERSION = '1.0.0'

Pakete verteilen

Fügen Sie eine pyproject.toml- oder setup.py-Datei hinzu, damit Ihr Paket mit pip installierbar wird.

# pyproject.toml excerpt
[project]
name = "mypackage"
version = "1.0.0"

# Install locally
# pip install -e .

Paketattribute untersuchen

Verwenden Sie __file__, __path__ und __name__, um Paketmetadaten zur Laufzeit zu untersuchen.

import mypackage
print(mypackage.__file__)   # path to __init__.py
print(mypackage.__path__)   # list of directory paths
print(mypackage.__name__)   # 'mypackage'

Wissenscheck

Welche Datei macht ein Verzeichnis zu einem Python-Paket?

Zusammenfassung

Pakete organisieren Module mithilfe von __init__.py in Verzeichnissen. Verwenden Sie absolute Importe für Klarheit, relative Importe innerhalb eines Pakets und __all__, um öffentliche APIs zu steuern.

Häufig gestellte Fragen

Ist die Lektion „Pakete und __init__.py“ kostenlos?

Ja — der vollständige Text von „Pakete und __init__.py“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Pakete und __init__.py“?

Organisieren Sie Module mit einer geeigneten Verzeichnisstruktur in Paketen. Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Python Academy zu starten?

Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Pakete und __init__.py“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?

Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Module erstellen und importieren
  2. Die Python-Standardbibliothek
  3. Pakete und __init__.py
  4. Pakete mit pip installieren
← Zurück zu Python Academy