J'ai un problème avec
cycle d'importation non autorisé
Il apparaît, lorsque j'essaye de tester mon contrôleur. Comme sortie, j'ai
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
Quelqu'un peut-il me dire, comment lire ou comprendre cette erreur? Où est la dépendance?
account
package importe lebase
package, qui importe lemux
package, qui importe leaccount
package. C'est un ensemble cyclique de dépendances d'importation, ce qui n'est pas autorisé. Il semble que vous ayez également un autre cycle, lesbase
importationsmux
, les importationsroutes
, les importationsbase
.Réponses:
Voici une illustration de votre premier problème de cycle d'importation.
Comme vous pouvez le voir avec mon mauvais graphique ASCII, vous créez un cycle d'
project/components/mux
importation lors des importationsproject/controllers/account
. Étant donné que Go ne prend pas en charge les dépendances circulaires, vous obtenez l'import cycle not allowed
erreur lors de la compilation.la source
watcher
Je viens de rencontrer ça. Vous pouvez accéder à une méthode / un type à partir du même package en utilisant le nom du package lui-même.
Voici un exemple pour illustrer ce que je veux dire:
Dans foo.go:
Dans foo_test.go:
la source
Vous avez peut-être importé,
à l'intérieur de
Vous avez déjà importé auparavant. Ce n'est pas pris en charge.
la source