Ein Modul ist eine einzelne .py-Datei; ein Package ist ein Verzeichnis von Modulen. Imports ermöglichen es dir, Code aus anderen Modulen zu nutzen und ein Programm in wiederverwendbare Teile zu organisieren.
Module und Imports
(): a + b
PI =
Ein Modul ist eine einzelne .py-Datei; ein Package ist ein Verzeichnis von Modulen. Imports ermöglichen es dir, Code aus anderen Modulen zu nutzen und ein Programm in wiederverwendbare Teile zu organisieren.
(): a + b
PI =
# main.py — different ways to import
import math_utils # import the whole module
math_utils.add(2, 3) # access via the module name
from math_utils import add, PI # import specific names
add(2, 3) # use directly
from math_utils import add as plus # import with an alias
import numpy as np # common aliasing convention
mypackage/
__init__.py ← marks it as a package (can be empty)
module_a.py
subpackage/
__init__.py
module_b.py
from mypackage.module_a import something
from mypackage.subpackage.module_b import other
Die Datei __init__.py kennzeichnet ein Verzeichnis als Package (und kann Package-Init-Code ausführen oder definieren, was from package import * offenlegt).
if __name__ == "__main__"-Idiomdef main():
print("running as a script")
if __name__ == "__main__": # True only when run directly, not when imported
main()
Dies ermöglicht es einer Datei, sowohl als importierbares Modul als auch als ausführbares Script zu fungieren — der Code darunter wird nur ausgeführt, wenn die Datei direkt aufgerufen wird (python file.py), nicht wenn sie importiert wird. Ein nahezu universelles Python-Idiom.
import sys
sys.path # the list of directories Python searches for imports
# includes: the current directory, installed packages (site-packages), stdlib
import os, json, datetime # standard library — "batteries included"
import requests # third-party — installed via pip from PyPI
Module und Packages sind die Methode, mit der du Python-Code in wiederverwendbare, wartbare Einheiten organisierst, anstatt alles in eine riesige Datei zu packen — fundamental für jedes nicht-triviale Projekt.
Das Verständnis der Import-Stile, der Package-Struktur (__init__.py), des if __name__ == "__main__"-Idioms (duales Script/Modul-Verhalten) und der Art, wie Python Module findet (sys.path), ist essentiell für die Strukturierung von Projekten, die Wiederverwendung von Code und die Nutzung der riesigen Standardbibliothek und des PyPI-Ökosystems.
Importfehler und Struktur-Verwirrrungen sind häufige frühe Hürden, die dieses Wissen behebt.