Heim >Backend-Entwicklung >Python-Tutorial >Python-Fehler: ImportError: Name „xxx' kann nicht importiert werden, wie kann man ihn lösen?

Python-Fehler: ImportError: Name „xxx' kann nicht importiert werden, wie kann man ihn lösen?

PHPz
PHPzOriginal
2023-08-18 23:12:3916439Durchsuche

Python报错:ImportError: cannot import name 'xxx',该如何解决?

Python-Fehler: ImportError: Name „xxx“ kann nicht importiert werden, wie kann man ihn lösen?

Beim Programmieren mit Python kommt es sehr häufig zu Fehlern. Einer der häufigsten Fehler ist „ImportError: Name 'xxx' kann nicht importiert werden“, d. h. ein bestimmter Name ('xxx') kann nicht importiert werden.

Dieser Fehler tritt normalerweise in zwei verschiedenen Situationen auf:

  1. Zirkelreferenzproblem:

Zirkelreferenz bedeutet, dass zwei Module einander importieren. Angenommen, es gibt zwei Module A und B. A importiert B und B importiert auch A. Diese Situation verursacht einen ImportError. Um dieses Problem zu lösen, können wir Zirkelverweise vermeiden, indem wir die Position des Imports anpassen.

Hier ist ein Beispielcode, der einen Zirkelverweis verursacht:

# module_a.py
import module_b

def foo():
    print("hello from module_a")

# module_b.py
import module_a

def bar():
    module_a.foo()

Um das Zirkelverweisproblem zu lösen, können wir den Import in die Funktion einfügen, die verwendet werden muss. Der geänderte Code lautet wie folgt:

# module_a.py

def foo():
    import module_b
    print("hello from module_a")

# module_b.py

def bar():
    import module_a
    module_a.foo()
  1. Importname existiert nicht:

Der Importname existiert nicht. Der Fehler bedeutet, dass beim Importieren eines Moduls der entsprechende Name nicht im Modul definiert ist. Dies kann daran liegen, dass der Name falsch geschrieben ist, das Modul nicht existiert oder die entsprechende Variable oder Funktion im Modul nicht definiert ist.

Um dieses Problem zu lösen, müssen wir sicherstellen, dass das erforderliche Modul korrekt importiert wird und der von uns benötigte Name im Modul vorhanden ist.

Hier ist ein Beispielcode mit dem Fehler „Importname nicht vorhanden“:

# module_a.py

def foo():
    print("hello from module_a")

# main.py
import module_a

module_a.bar()

In diesem Beispiel versuchen wir, eine Funktion namens „bar“ in Modul_a aufzurufen, aber tatsächlich definiert Modul_a diese Funktion nicht.

Um dieses Problem zu lösen, müssen wir das richtige Modul importieren, in dem die Funktion „bar“ verwendet werden muss, und sicherstellen, dass diese Funktion im Modul vorhanden ist.

Das Folgende ist der geänderte Code:

# module_a.py

def foo():
    print("hello from module_a")

def bar():
    print("hello from bar")

# main.py
import module_a

module_a.bar()

Im geänderten Code haben wir die Funktion „bar“ in module_a definiert und das Modul module_a in main.py importiert. Wir können nun die Funktion „bar“ erfolgreich aufrufen.

Zusammenfassung:

Wenn der Fehler „ImportError: Name ‚xxx‘ kann nicht importiert werden“ auftritt, müssen Sie zunächst feststellen, ob ein Zirkelverweisproblem vorliegt. Wenn ja, passen Sie die Importposition an, um das Zirkelverweisproblem zu lösen. Stellen Sie außerdem sicher, dass das importierte Modul vorhanden ist und dass das Modul den von uns benötigten Namen enthält. Indem wir den Importort überprüfen und anpassen und die aufgerufene Variable oder Funktion korrekt benennen, können wir diesen Fehler beheben und das erforderliche Modul und den erforderlichen Namen erfolgreich importieren.

Das obige ist der detaillierte Inhalt vonPython-Fehler: ImportError: Name „xxx' kann nicht importiert werden, wie kann man ihn lösen?. 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