Ich habe ein Problem mit
Importzyklus nicht erlaubt
Es wird angezeigt, wenn ich versuche, meinen Controller zu testen. Als Ausgabe habe ich
can't load package: import cycle not allowed
package project/controllers/account
imports project/controllers/base
imports project/components/mux
imports project/controllers/account
import cycle not allowed
package project/controllers/account
imports project/controllers/base
imports project/components/mux
imports project/controllers/account
import cycle not allowed
package project/controllers/account
imports project/controllers/base
imports project/components/mux
imports project/controllers/routes
imports project/controllers/base
Kann mir jemand sagen, wie man diesen Fehler liest oder versteht? Wo ist die Abhängigkeit falsch?
account
Paket importiert dasbase
Paket, das das Paket importiert , das dasmux
Paket importiertaccount
. Dies ist ein zyklischer Satz von Importabhängigkeiten, der nicht zulässig ist. Es sieht so aus, als hätten Sie auch einen anderen Zyklus:base
Importemux
, welche Importeroutes
, welche Importebase
.Antworten:
Hier ist eine Illustration Ihres ersten Importzyklusproblems.
Wie Sie an meinem schlechten ASCII-Diagramm sehen können, erstellen Sie beim
project/components/mux
Importieren einen Importzyklusproject/controllers/account
. Da Go keine zirkulären Abhängigkeiten unterstützt, wird derimport cycle not allowed
Fehler während der Kompilierungszeit angezeigt.quelle
watcher
Ich bin gerade darauf gestoßen. Möglicherweise greifen Sie innerhalb desselben Pakets mit dem Paketnamen selbst auf eine Methode / einen Typ zu.
Hier ist ein Beispiel, um zu veranschaulichen, was ich meine:
In foo.go:
In foo_test.go:
quelle
Sie haben möglicherweise importiert,
in der
Sie haben bereits zuvor importiert. Das wird nicht unterstützt.
quelle