Wie behebt man ModuleNotFoundError bei der Verwendung relativer Importe in Python?

DDD
Freigeben: 2024-10-29 04:52:29
Original
767 Leute haben es durchsucht

 How to Fix ModuleNotFoundError When Using Relative Imports in Python?

Relative Importe in Python: Fehlerbehebung bei ModuleNotFoundError

Beim Arbeiten mit mehreren Python-Modulen kommt es häufig vor, dass der ModuleNotFoundError auftritt. Dieser Fehler tritt typischerweise auf, wenn versucht wird, ein Modul mithilfe eines relativen Importpfads aus einer Datei zu importieren, die nicht als Teil eines Pakets ausgeführt wird.

Um diesen Fehler zu verstehen, ist es wichtig, zwischen relativen und absoluten Importen zu unterscheiden:

  • Absolute Importe geben den vollständigen Modulpfad an, unabhängig vom Speicherort des aktuellen Moduls.
  • Relative Importe ermöglichen den Import von Modulen relativ zum Die Position des aktuellen Moduls innerhalb eines Pakets.

Im bereitgestellten Beispiel versucht test.py, config.py mithilfe eines relativen Importpfads (Importkonfiguration) zu importieren. Wenn test.py jedoch nicht als Teil eines Pakets ausgeführt wird (z. B. wenn es direkt als Skript ausgeführt wird), ist main das aktuelle Modul, das nicht in einem Paket enthalten ist.

Daher kann ein relativer Import aus dem Hauptmodul nicht verwendet werden. Stattdessen sollten Sie absolute Importe verwenden (aus . import config). Die Verwendung absoluter Importe ohne Hinzufügen des enthaltenden Ordners (ryan) zu sys.path führt jedoch zu einem ModuleNotFoundError.

Um dieses Problem zu beheben, müssen Sie entweder:

  • Ihr Verzeichnis ändern Strukturieren Sie das Skript und führen Sie es im Paketverzeichnis aus. Stellen Sie dabei sicher, dass sys.path den Paketpfad enthält.
  • Verwenden Sie eine paketbewusste Importmethode, z. B. das Einfügen von __init__.py-Dateien in die Unterverzeichnisse, die Pakete definieren.

Sobald diese Schritte durchgeführt wurden, sollten sowohl absolute als auch relative Importe wie erwartet funktionieren.

Das obige ist der detaillierte Inhalt vonWie behebt man ModuleNotFoundError bei der Verwendung relativer Importe in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage