Wie man Importe zwischen Dateien in demselben Python-Paket handhabt

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Python-Pakete (Python packages) sind eine leistungsstarke Möglichkeit, Ihren Code zu organisieren und zu verwalten. Doch die Navigation bei Importen zwischen Dateien innerhalb desselben Pakets kann schwierig sein. In diesem Tutorial werden Sie durch den Prozess des Verständnisses von Python-Paketen, des korrekten Importierens von Dateien und des Aufrechterhalts einer sauberen und organisierten Code-Struktur geführt.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/creating_modules("Creating Modules") python/ModulesandPackagesGroup -.-> python/using_packages("Using Packages") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") subgraph Lab Skills python/importing_modules -.-> lab-398199{{"Wie man Importe zwischen Dateien in demselben Python-Paket handhabt"}} python/creating_modules -.-> lab-398199{{"Wie man Importe zwischen Dateien in demselben Python-Paket handhabt"}} python/using_packages -.-> lab-398199{{"Wie man Importe zwischen Dateien in demselben Python-Paket handhabt"}} python/standard_libraries -.-> lab-398199{{"Wie man Importe zwischen Dateien in demselben Python-Paket handhabt"}} end

Python-Pakete verstehen

Python-Pakete (Python packages) sind eine Möglichkeit, Ihren Python-Code zu organisieren und zu strukturieren. Ein Paket ist eine Sammlung von Python-Modulen (Python modules), die einzelne Python-Dateien sind. Pakete helfen Ihnen, verwandten Code zusammenzufassen, was die Verwaltung und Verteilung Ihres Codes erleichtert.

Was ist ein Python-Paket?

Ein Python-Paket ist ein Verzeichnis, das ein oder mehrere Python-Module sowie eine spezielle Datei namens __init__.py enthält. Die Datei __init__.py wird verwendet, um das Paket und seinen Inhalt zu definieren. Sie kann leer sein oder Python-Code enthalten, der ausgeführt wird, wenn das Paket importiert wird.

Warum sollten Sie Python-Pakete verwenden?

Die Verwendung von Python-Paketen bietet mehrere Vorteile:

  1. Modularität: Pakete ermöglichen es Ihnen, Ihren Code in kleinere, leichter zu verwaltende Teile aufzuteilen, was die Wartung und Aktualisierung erleichtert.
  2. Wiederverwendbarkeit: Pakete können in verschiedenen Projekten geteilt und wiederverwendet werden, was die Code-Wiederverwendung und die Zusammenarbeit fördert.
  3. Namespace-Verwaltung: Pakete helfen Ihnen, Namenskonflikte zu vermeiden, indem sie eine Möglichkeit bieten, Ihren Code in verschiedene Namespaces (Namensräume) zu organisieren.
  4. Skalierbarkeit: Wenn Ihr Projekt wächst, erleichtern Pakete die Verwaltung und Organisation Ihres Codebases (Codebestands), was die Skalierbarkeit verbessert.

Erstellen eines Python-Pakets

Um ein Python-Paket zu erstellen, befolgen Sie diese Schritte:

  1. Erstellen Sie ein Verzeichnis für Ihr Paket.
  2. Erstellen Sie innerhalb des Verzeichnisses die Datei __init__.py.
  3. Fügen Sie Ihre Python-Module (.py-Dateien) dem Paketverzeichnis hinzu.

Hier ist ein Beispiel für eine Verzeichnisstruktur eines Python-Pakets:

my_package/
├── __init__.py
├── module1.py
└── module2.py

In der Datei __init__.py können Sie die Module innerhalb des Pakets importieren, um sie für die Benutzer des Pakets verfügbar zu machen.

from .module1 import function1
from .module2 import function2

Durch die Verwendung der relativen Import-Syntax (.module1, .module2) können Sie sicherstellen, dass die Module innerhalb des Pakets korrekt importiert werden.

Importieren von Dateien innerhalb eines Pakets

Wenn Sie mit Python-Paketen (Python packages) arbeiten, müssen Sie oft Dateien (Module) innerhalb desselben Pakets importieren. Es gibt zwei Hauptmethoden, um dies zu tun: absolute Importe (absolute imports) und relative Importe (relative imports).

Absolute Importe

Absolute Importe verwenden den vollständigen Paketpfad, um ein Modul zu importieren. Dieser Ansatz ist nützlich, wenn Sie auf ein Modul außerhalb des aktuellen Pakets zugreifen müssen oder wenn die Paketstruktur komplex ist.

Beispiel:

from my_package.module1 import function1
from my_package.subpackage.module2 import function2

In diesem Beispiel ist my_package das oberste Paket, und subpackage ist ein Subpaket innerhalb von my_package.

Relative Importe

Relative Importe verwenden die Punktnotation, um den relativen Pfad zum Modul innerhalb desselben Pakets anzugeben. Dieser Ansatz ist häufiger und für Importe innerhalb eines Pakets bevorzugt.

Beispiel:

from .module1 import function1
from .submodule.module2 import function2

Der führende Punkt (.) in der Importanweisung gibt an, dass sich das Modul relativ zur Position des aktuellen Moduls in der Pakethierarchie befindet.

Vorteile relativer Importe

  1. Portabilität: Relative Importe machen Ihren Code portabler, da die Paketstruktur einfach verschoben oder neu organisiert werden kann, ohne die Importe zu brechen.
  2. Lesbarkeit: Relative Importe sind kompakter und leichter zu lesen, da sie nicht den vollständigen Paketpfad erfordern.
  3. Wartbarkeit: Relative Importe erleichtern die Wartung und Refactoring Ihres Codes, da die Paketstruktur geändert werden kann, ohne alle Importanweisungen zu aktualisieren.

Organisieren von Importen für bessere Wartbarkeit

Wenn Sie mit Paketen arbeiten, ist es wichtig, Ihre Importe für eine bessere Wartbarkeit zu organisieren. Hier sind einige bewährte Verfahren:

  1. Gruppieren Sie verwandte Importe zusammen: Gruppieren Sie Importe aus demselben Paket oder Modul zusammen, um die Lesbarkeit zu verbessern.
  2. Verwenden Sie absolute Importe für externe Pakete: Verwenden Sie absolute Importe für Pakete oder Module, die nicht Teil Ihres eigenen Codebases (Codebestands) sind.
  3. Bevorzugen Sie relative Importe innerhalb des Pakets: Verwenden Sie relative Importe, wenn Sie Module innerhalb desselben Pakets importieren.
  4. Vermeiden Sie zirkuläre Importe: Zirkuläre Importe können zu Problemen führen, also versuchen Sie, Ihre Paketstruktur so zu gestalten, dass sie diese vermeidet.

Indem Sie diese Leitlinien befolgen, können Sie Ihre Importanweisungen organisiert halten, was Ihren Code wartbarer und leichter verständlich macht.

Organisieren von Importen für bessere Wartbarkeit

Wenn Sie mit Python-Paketen (Python packages) arbeiten, ist es wichtig, Ihre Importe so zu organisieren, dass Ihr Code wartbarer und leichter verständlich wird. Hier sind einige bewährte Verfahren, die Sie befolgen sollten:

Gruppieren Sie verwandte Importe zusammen

Gruppieren Sie Importe aus demselben Paket oder Modul zusammen, um die Lesbarkeit zu verbessern und es einfacher zu machen, die Abhängigkeiten in Ihrem Code zu verstehen.

Beispiel:

import os
import sys

from my_package.module1 import function1
from my_package.module2 import function2
from my_package.subpackage.module3 import function3

Verwenden Sie absolute Importe für externe Pakete

Wenn Sie Pakete oder Module importieren, die nicht Teil Ihres eigenen Codebases (Codebestands) sind, verwenden Sie absolute Importe. Dies macht klar, dass der importierte Code aus einer externen Quelle stammt.

Beispiel:

import numpy as np
import pandas as pd

Bevorzugen Sie relative Importe innerhalb des Pakets

Für Importe innerhalb desselben Pakets verwenden Sie relative Importe. Dies macht Ihren Code portabler und leichter zu warten, da die Paketstruktur geändert werden kann, ohne die Importe zu brechen.

Beispiel:

from .module1 import function1
from .submodule.module2 import function2

Vermeiden Sie zirkuläre Importe

Zirkuläre Importe, bei denen zwei Module sich gegenseitig importieren, können zu Problemen führen und sollten vermieden werden. Wenn Sie auf einen zirkulären Import stoßen, versuchen Sie, Ihren Code zu refactorn, um die zirkuläre Abhängigkeit zu beseitigen.

Beispiel eines zirkulären Imports:

## module1.py
from .module2 import function2

## module2.py
from .module1 import function1

Indem Sie diese bewährten Verfahren befolgen, können Sie Ihre Importanweisungen organisiert halten, was Ihren Code für Sie und andere Entwickler, die an dem Projekt arbeiten, wartbarer und leichter verständlich macht.

Zusammenfassung

Am Ende dieses Tutorials werden Sie einen soliden Überblick darüber haben, wie Sie Importe zwischen Dateien in demselben Python-Paket (Python package) handhaben können. Sie werden die bewährten Verfahren für die Organisation Ihres Codes, die Verwaltung von Abhängigkeiten und die Gewährleistung der Wartbarkeit Ihres Projekts im Wachstum lernen. Egal, ob Sie ein Anfänger oder ein erfahrener Python-Entwickler sind, dieser Leitfaden wird Sie mit den Kenntnissen ausstatten, um Importe innerhalb Ihrer Python-Pakete effektiv zu verwalten.