Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich den Fehler „Versuchter relativer Import in Nicht-Paket' in Python vermeiden?
Relative Importe in Python
Das Verständnis relativer Importe in Python ist entscheidend, um den Fehler „Versuchter relativer Import in Nicht-Paket“ zu vermeiden.
Skript vs. Modul
Ein wichtiger Unterschied ergibt sich aus der Lademethode einer Python-Datei. Bei direkter Ausführung als Skript wird sein Name auf __main__ gesetzt. Wenn es hingegen importiert wird, enthält sein Name Paketinformationen.
Namenskonventionen
Wenn beispielsweise moduleX in package/subpackage1/moduleX.py importiert wird, wird sein Name angezeigt wird zu package.subpackage1.moduleX. Bei direkter Ausführung lautet der Name jedoch __main__.
Relative Importe
Relative Importe basieren auf dem Namen eines Moduls, um seine Pakethierarchie zu bestimmen. Module, deren Namen keine Punkte enthalten, werden nicht als Teil eines Pakets angesehen.
Fehlerursache
Der Fehler tritt auf, wenn relative Importe in Modulen versucht werden, deren Namen darauf hinweisen, dass sie vorhanden sind. Sie befinden sich nicht in einem Paket (d. h. ihren Namen fehlen Punkte). Dazu gehören Skripte (da main keine Punkte hat) und Module, die direkt aus dem aktuellen Verzeichnis geladen werden (wobei Python das aktuelle Verzeichnis zu seinem Suchpfad hinzufügt).
Lösungen
Das Paketverzeichnis muss im Python-Suchpfad zugänglich sein.
In Python 2.6 ist das PaketDas obige ist der detaillierte Inhalt vonWie kann ich den Fehler „Versuchter relativer Import in Nicht-Paket' in Python vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!