Python import: Module & Pakete importieren

    Avatarbild von Perica Glavas
    Perica Glavas

    veröffentlicht am: 11.09.2020
    zuletzt aktualisiert am: 01.02.2023

    Die Python import Funktion im Überblick

    Eine kurze Einführung: Module in Python

    In einfach Worten ist ein Python-Modul nichts anderes als eine Datei, die einen vorgefertigten Python Code beinhaltet. Der Code kann dabei neben Funktionen auch Variablen und alles Weitere enthalten. Das Gute dabei ist, dass wir den Code nutzen können, indem wir ihn in eine andere Datei importieren.
    Ein Modul beinhaltet im Regelfall immer eine gesamte Funktionalität, die in verschiedenen Dateien mehr als einmal genutzt wird. Anstatt den Code jedes Mal in den verschiedenen Dateien neu schreiben zu müssen, können wir dafür ein Modul erstellen und dieses nach Belieben importieren, wenn wir den Code benötigen. Es gibt verschiedene Art und Weisen, wie wir in Python ein Modul importieren können. In diesem Artikel werden wir diese näher kennenlernen und uns unter anderem mit der Python import-Funktion beschäftigen.

    Die Python import Funktion

    Grundsätzlich wird von uns das Wort „import“ verwendet, um ein Modul in unsere Datei zu importieren. Die Syntax sieht dabei wie folgt aus:

    import <modul-name>

    Das ist der einfachste Weg, um ein Modul zu importieren. Wir können dabei auch bereits integrierte Module von Python in unsere Datei importieren:

    import random
    zufaelligeZahl = random.random()
    print(zufaelligeZahl)

    Im obigen Code haben wir in der ersten Zeile das random-Modul von Python importiert. Das bedeutet, dass wir Alles aus dem random-Modul in unsere Datei importiert haben und die vorgefertigten Funktionen jetzt nutzen können. In der nächsten Zeile rufen wir die random()-Funktion aus dem Modul auf.

    zufaelligeZahl = random.random()

    Wir könnten auch jede andere Funktion aus dem Modul nutzen.

    Python import des random-Moduls

    Importieren eines manuell erstellten Moduls

    Wir erstellen uns zunächst ein eigenes Modul, um einen weiteren Weg des Importierens zu betrachten.

    def sagHallo():
    	print("Hallo Welt")
    
    def addiereZahlen(x, y):
    	print("Summe von x und y:", x + y)	

    Wir benennen das Modul mit dem Namen „beispielModul“. Jetzt können wir dieses wie bereits gelernt in eine andere Datei importieren.

    import beispielModul
    beispielModul.sagHallo()

    Wir haben das Modul „beispielModul“ importiert und rufen jetzt die Funktion „sagHallo()“ auf.

    Import eines selbst erstellten Moduls

    Achtung: Das Modul und die Datei, die in die das Modul importiert werden sollen, müssen sich im selben Ordner befinden.

    Python from: Nur einen bestimmten Teil eines Moduls importieren

    In den obigen Beispielen haben wir immer das vollständige Modul importiert. So konnten wir alle Inhalte nutzen, indem wir den Modulname und einen Punkt verwendet haben. Aber was müssen wir machen, wenn wir nur etwas Spezifisches aus dem Modul benötigen? Zum Beispiel benötigen wir lediglich eine Funktion. Dann können wir das Wort „from“ beim Importieren nutzen. Dies sieht dann wie folgt aus.

    from <modul-name> import <modul-teil>

    Wir müssen allerdings beachten, dass wir mit dieser Schreibweise lediglich den „modul-teil“ aus dem Modul nutzen können.

    from beispielModul import sagHallo
    sagHallo()

    Ein Vorteil dieser Herangehensweise ist, dass wir nicht bei jeder Verwendung des Importierten den Modulnamen nutzen müssen.

    Mit Python from nur einen bestimmten Teil eines Python Moduls importieren

    Wir können jetzt versuchen, die addiereZahlen()-Funktion aufzurufen

    from beispielModul import sagHallo
    addiereZahlen(2,5)
    Fehlermeldung, da die Funktion nicht im importierten Teil des Pakets enthalten ist.

    Wie erwartet erhalten wir einen Fehler. Diese Meldung erhalten wir, weil wir die Funktion addiereZahlen() nicht importiert haben.

    Es existiert allerdings ein weiterer Weg um das Wort „from“ zu verwenden. Dabei können wir dann auch das ganze Modul importieren. Wir können dann alles aus dem Modul nutzen, ohne jeweils den Modulnamen und den Punkt schreiben zu müssen. Dies erreichen wir wie folgt.

    from <modul-name> import *

    Das Stern-Symbol definiert uns dabei, dass alle Inhalte des Moduls importiert werden.

    from beispielModul import *
    sagHallo()
    addiereZahlen(2, 5)

    Jetzt können wir alle Inhalte aus dem Modul nutzen.

    Alle Inhalte eines Moduls mit der *-Funktion nutzen.

    Python import: Aus einem Paket importieren

    Bis jetzt haben wir kennengelernt, wie wir die Wörter „import“ und „from“ nutzen können, um Module zu importieren. Allerdings existieren auch Pakete.

    Ein Paket ist ein Ordner, der mehrere Python-Dateien und Module beinhaltet. Wir können die Module nicht einfach an jeder Stelle speichern. In der Realität werden die Module so platziert, dass sie vom Programmierer einfach gefunden werden können. Wollen wir aus Paketen importieren müssen wir entsprechend anders vorgehen.

    Das Modul „beispielModul“ wird nun in ein Paket mit dem Namen „paket“ gespeichert. Versuchen wir zunächst, wie zuvor gelernt, das Modul zu importieren.

    import beispielModul
    beispielModul.sagHallo()
    Fehlermeldung, da dass Modul nicht gefunden werden konnte.

    Wie erwartet, erhalten wir einen Fehler.

    Um unser Modul aus dem Paket zu importieren, müssen wir folgende Schreibweise verwenden:

    import <paket-name>.<modul-name>

    Dieser Ansatz ist vollkommen in Ordnung, aber ein bisschen länger.

    import paket.beispielModul
    paket.beispielModul.sagHallo()
    Mit Python import ein Modul in einem Paket importieren.

    Wir können die Schreibweise wie folgt verkürzen.

    from paket import beispielModul
    beispielModul.sagHallo()
    beispielModul.addiereZahlen(2,5)

    Diese Schreibweise ist weniger komplex.

    Verkürzte Schreibweise desselben Ergebnisses.

    Was müssen wir aber machen, wenn wir wieder nur spezifische Inhalte importieren möchten? Dann können wir genauso wie in früheren Beispielen vorgehen. Es ist mit dem Paket genauso möglich. Wenn wir also spezifische Inhalte importieren möchten, gehen wir wie folgt vor.

    from <paket-name>.<modul-name> import <modul-inhalt>

    Probieren wir es am echten Beispiel.

    from paket.beispielModul import sagHallo
    sagHallo()
    Nur einen bestimmten Teil eines Moduls welches in einem Paket liegt importieren.

    Gleichermaßen können wir auch wieder das Stern-Symbol verwenden, um alle Inhalte in die Datei zu importieren.

    # from <paket-name>.<modul-name> import *
    from paket.beispielModul import *
    sagHallo()
    addiereZahlen(2,5)
    Python import mit der Sternchen-Funktion um alle Funktionen eines Moduls, welches in einem Paket liegt, zu importieren.

    Zusammenfassung

    Die Module sind ein wichtiger Bestandteil der Entwicklung in Python. Dabei können wir auf zahlreiche, bereits in Python implementierte, Module zurückgreifen. Außerdem können wir unsere eigenen Module erstellen. Die Module zu importieren ist keine schwierige Sache. Das Wort „import“ wird verwendet, um ganz einfach das gesamte Modul zu importieren. Allerdings können Module riesig sein und zahlreiche Inhalte besitzen, von denen wir lediglich Spezifische benötigen. Außerdem kann es Teil eines ganzen Pakets sein. Für all diese Herausforderungen haben wir Wege kennengelernt, diese zu lösen und für uns nutzen zu können.

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Python und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig