Website-Suche

Wie man Module in Python 3 importiert


Einführung

Die Programmiersprache Python verfügt über eine Vielzahl von integrierten Funktionen. Darunter sind mehrere häufig verwendete Funktionen, einschließlich:

  • print(), das Ausdrücke ausgibt
  • abs(), das den Betrag einer Zahl zurückgibt.
  • int(), das einen anderen Datentyp in eine Ganzzahl umwandelt
  • len(), das die Länge einer Sequenz oder Sammlung zurückgibt

Diese eingebauten Funktionen sind jedoch begrenzt, und wir können Module verwenden, um ausgefeiltere Programme zu erstellen.

Module sind Python .py Dateien, die aus Python-Code bestehen. Jede Python-Datei kann als Modul referenziert werden. Eine Python-Datei namens hello.py hat den Modulnamen hello, der in andere Python-Dateien importiert oder im Python-Befehlszeileninterpreter verwendet werden kann. Sie können lernen, wie Sie Ihre eigenen Module erstellen, indem Sie lesen, wie man Module in Python 3 schreibt.

Module können Funktionen, Klassen und Variablen definieren, auf die Sie in anderen Python .py Dateien oder über den Python-Befehlszeileninterpreter verweisen können.

In Python werden Module mit der import-Anweisung zugänglich gemacht. Wenn Sie dies tun, führen Sie den Code des Moduls aus und behalten die Gültigkeitsbereiche der Definitionen bei, sodass Ihre aktuellen Datei(en) diese verwenden können.

Wenn Python ein Modul mit dem Namen hello importiert, sucht der Interpreter zuerst nach einem integrierten Modul mit dem Namen hello. Wenn kein integriertes Modul gefunden wird, sucht der Python-Interpreter in einer Liste von Verzeichnissen, die er von der Variablen sys.path erhält, nach einer Datei mit dem Namen hello.py.

Dieses Tutorial führt Sie durch die Überprüfung und Installation von Modulen, das Importieren von Modulen und das Aliasieren von Modulen.

Voraussetzungen

Sie sollten Python 3 installiert und eine Programmierumgebung auf Ihrem Computer oder Server eingerichtet haben. Wenn Sie keine Programmierumgebung eingerichtet haben, können Sie auf die Installations- und Einrichtungsanleitungen für eine lokale Programmierumgebung oder für eine Programmierumgebung auf Ihrem Server verweisen, die für Ihr Betriebssystem (Ubuntu, CentOS, Debian usw.) geeignet ist.

Überprüfung und Installation von Modulen

Es gibt eine Reihe von Modulen, die in die Python Standardbibliothek integriert sind, die viele Module enthält, die Zugriff auf Systemfunktionen bieten oder standardisierte Lösungen bereitstellen. Die Python Standardbibliothek ist Teil jeder Python-Installation.

Info: Um dem Beispielcode in diesem Tutorial zu folgen, öffnen Sie eine Python-interaktive Shell auf Ihrem lokalen System, indem Sie den Befehl python3 ausführen. Dann können Sie die Beispiele kopieren, einfügen oder bearbeiten, indem Sie sie nach der >>> Eingabeaufforderung hinzufügen.

Um zu überprüfen, ob diese Python-Module bereit sind, geben Sie in Ihrer lokalen Python 3-Programmierumgebung oder in einer serverbasierten Programmierumgebung ein und starten Sie den Python-Interpreter in Ihrer Eingabeaufforderung wie folgt:

  1. python

Von innerhalb des Interpreters können Sie die import-Anweisung ausführen, um sicherzustellen, dass das angegebene Modul bereit ist, aufgerufen zu werden, wie folgt:

  1. import math

Da math ein integriertes Modul ist, sollte Ihr Interpreter die Aufgabe ohne Rückmeldung erledigen und zur Eingabeaufforderung zurückkehren. Das bedeutet, dass Sie nichts tun müssen, um das math Modul zu verwenden.

Lassen Sie uns die import-Anweisung mit einem Modul ausführen, das Sie möglicherweise nicht installiert haben, wie die 2D-Diagrammbibliothek matplotlib:

  1. import matplotlib

Wenn matplotlib nicht installiert ist, erhalten Sie einen Fehler wie diesen:

ImportError: No module named 'matplotlib'

Du kannst den Python-Interpreter mit CTRL + D deaktivieren und dann matplotlib mit pip installieren.

Als nächstes können wir pip verwenden, um das matplotlib Modul zu installieren:

  1. pip install matplotlib

Sobald es installiert ist, können Sie matplotlib im Python-Interpreter mit import matplotlib importieren, und es wird ohne Fehler abgeschlossen.

Module importieren

Um die Funktionen in einem Modul zu nutzen, müssen Sie das Modul mit einer import-Anweisung importieren.

Eine import-Anweisung besteht aus dem import-Schlüsselwort zusammen mit dem Namen des Moduls.

In einer Python-Datei wird dies am Anfang des Codes deklariert, unter allen Shebang-Zeilenn oder allgemeinen Kommentaren.

In der Python-Programmdatei my_rand_int.py würden wir das random-Modul importieren, um Zufallszahlen auf diese Weise zu generieren:

import random

Wenn wir ein Modul importieren, machen wir es in unserem aktuellen Programm als separaten Namensraum verfügbar. Das bedeutet, dass wir auf die Funktion in Punktnotation verweisen müssen, wie in [modul].[funktion].

In der Praxis könnte dies am Beispiel des random-Moduls wie eine Funktion aussehen, die folgendes hat:

  • random.randint(), die die Funktion aufruft, um eine Zufallszahl zurückzugeben, oder
  • random.randrange(), das die Funktion aufruft, um ein zufälliges Element aus einem bestimmten Bereich zurückzugeben.

Lass uns eine for-Schleife erstellen, um zu zeigen, wie wir eine Funktion des random-Moduls innerhalb unseres Programms my_rand_int.py aufrufen werden:

import random


for i in range(10):
    print(random.randint(1, 25))

Dieses kleine Programm importiert zuerst das random Modul in der ersten Zeile, dann geht es in eine for Schleife, die mit 10 Elementen arbeitet. Innerhalb der Schleife wird das Programm eine zufällige Ganzzahl im Bereich von 1 bis 25 (einschließlich) ausgeben. Die Ganzzahlen 1 und 25 werden als Parameter an random.randint() übergeben.

Wenn wir das Programm mit python my_rand_int.py ausführen, erhalten wir 10 zufällige Ganzzahlen als Ausgabe. Da diese zufällig sind, werden Sie wahrscheinlich bei jedem Ausführen des Programms unterschiedliche Ganzzahlen erhalten, aber sie werden etwa so etwas erzeugen:

6
9
1
14
3
22
10
1
15
9

Die Ganzzahlen sollten niemals unter 1 oder über 25 liegen.

Wenn Sie Funktionen aus mehr als einem Modul verwenden möchten, können Sie dies tun, indem Sie mehrere import-Anweisungen hinzufügen:

import random
import math

Sie können Programme sehen, die mehrere Module mit Kommas trennen – wie in import random, math – aber dies entspricht nicht dem PEP 8 Style Guide.

Um unser zusätzliches Modul zu nutzen, können wir die Konstante pi aus math zu unserem Programm hinzufügen und die Anzahl der ausgegebenen Zufallszahlen reduzieren:

import random
import math


for i in range(5):
    print(random.randint(1, 25))

print(math.pi)

Jetzt, wenn wir unser Programm ausführen, erhalten wir eine Ausgabe, die wie folgt aussieht, mit einer Annäherung an pi als unserer letzten Ausgabzeile:

18
10
7
13
10
3.141592653589793

Die import Anweisung ermöglicht es Ihnen, ein oder mehrere Module in Ihr Python-Programm zu importieren, sodass Sie die in diesen Modulen definierten Inhalte nutzen können.

Verwendung von from … import

Um auf Elemente aus einem Modul innerhalb des Namensraums Ihres Programms zu verweisen, können Sie die from … import Anweisung verwenden. Wenn Sie Module auf diese Weise importieren, können Sie auf die Funktionen nach Namen anstatt über Punktnotation zugreifen.

In diesem Bau können Sie angeben, auf welche Definitionen direkt verwiesen werden soll.

In anderen Programmen sehen Sie möglicherweise, dass die import-Anweisung mit einem Sternchen (*) als Platzhalter auf alles verweist, was im Modul definiert ist, aber dies wird von PEP 8 nicht empfohlen.

Lass uns zuerst überprüfen, wie man eine bestimmte Funktion, randint() aus dem random Modul importiert:

from random import randint

Hier rufen wir zuerst das Schlüsselwort from auf, dann random für das Modul. Danach verwenden wir das Schlüsselwort import und rufen die spezifische Funktion auf, die wir verwenden möchten.

Jetzt, wenn wir diese Funktion in unser Programm implementieren, werden wir die Funktion nicht mehr in Punktnotation als random.randint() schreiben, sondern stattdessen nur randint():

from random import randint


for i in range(10):
    print(randint(1, 25))

Wenn Sie das Programm ausführen, erhalten Sie eine Ausgabe, die ähnlich ist wie die, die wir zuvor erhalten haben.

Die Verwendung der from … import Konstruktion ermöglicht es uns, die definierten Elemente eines Moduls innerhalb des Namensraums unseres Programms zu referenzieren, wodurch wir die Punktnotation vermeiden können.

Aliasierende Module

Es ist möglich, die Namen von Modulen und ihren Funktionen in Python mithilfe des as Schlüssels zu ändern.

Vielleicht möchten Sie einen Namen ändern, weil Sie denselben Namen bereits für etwas anderes in Ihrem Programm verwendet haben, ein anderes Modul, das Sie importiert haben, ebenfalls diesen Namen verwendet, oder Sie möchten einen längeren Namen abkürzen, den Sie häufig verwenden.

Der Aufbau dieser Aussage sieht wie folgt aus:

import [module] as [another_name]

Lassen Sie uns den Namen des math-Moduls in unserer my_math.py-Programmdaten ändern. Wir werden den Modulnamen von math in m ändern, um ihn zu verkürzen. Unser modifiziertes Programm wird so aussehen:

import math as m


print(m.pi)
print(m.e)

Innerhalb des Programms beziehen wir uns jetzt auf die Konstante pi als m.pi statt math.pi.

Für einige Module ist es üblich, Aliase zu verwenden. Die offizielle Dokumentation des matplotlib.pyplot Moduls fordert die Verwendung von plt als Alias:

import matplotlib.pyplot as plt

Dies ermöglicht Programmierern, das kürzere Wort plt an jede der im Modul verfügbaren Funktionen anzuhängen, wie in plt.show(). Sie können diese Alias-Importanweisung in unserem “So plotten Sie Daten in Python 3 mit matplotlib” Tutorial sehen.

Schlussfolgerung

Wenn wir Module importieren, können wir Funktionen aufrufen, die nicht in Python eingebaut sind. Einige Module sind Teil von Python und einige werden wir über pip installieren.

Die Verwendung von Modulen ermöglicht es uns, unsere Programme robuster und leistungsfähiger zu gestalten, da wir auf vorhandenen Code zurückgreifen. Wir können auch unsere eigenen Module für uns selbst und für andere Programmierer erstellen, die in zukünftigen Programmen verwendet werden sollen.