Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich zirkuläre Importfehler in Python beheben?

Wie kann ich zirkuläre Importfehler in Python beheben?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-11 03:19:17934Durchsuche

How Can I Solve Circular Import Errors in Python?

Behebung zirkulärer Importfehler in Python

In Python treten zirkuläre Importe auf, wenn mehrere Module versuchen, sich gegenseitig zu importieren. Dies kann zu Fehlern wie „ImportError: Name code:

main.py:

entity.py:
from entity import Ent

physics.py:
from physics import Physics

class Ent:
    ...

Wenn Sie laufen main.py, Sie werden auf einen Fehler stoßen:
from entity import Ent

class Physics:
    ...

Der Fehler wird durch die zirkuläre Abhängigkeit zwischen physics.py verursacht und entity.py. Physics.py versucht, „entity.py“ zu importieren, das bereits initialisiert wird.
Traceback (most recent call last):
File "main.py", line 2, in <module>
    from entity import Ent
File ".../entity.py", line 5, in <module>
    from physics import Physics
File ".../physics.py", line 2, in <module>
    from entity import Ent
ImportError: cannot import name Ent

Um dieses Problem zu beheben, sollten Sie die Abhängigkeit von „physics.py“ aus dem Modul „entity.py“ entfernen. Beispielsweise können Sie „entity.py“ wie folgt ändern:

entity.py:

Wenn Sie nun main.py ausführen, sollte kein Fehler mehr auftreten.
# Do not import physics.py

class Ent:
    ...

Weitere Informationen zu zirkulären Importen finden Sie in den in den Fußnoten bereitgestellten Ressourcen.

Das obige ist der detaillierte Inhalt vonWie kann ich zirkuläre Importfehler in Python beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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