Maison > Article > développement back-end > Pourquoi les importations relatives fonctionnent-elles dans mon répertoire personnel mais pas dans GOPATH ?
Importation de packages locaux dans Go : pourquoi GOPATH et le répertoire personnel font la différence
Go offre un moyen pratique d'importer des packages locaux à l'aide de paramètres relatifs chemins. Cependant, cette approche présente des limites lorsque le package réside dans le GOPATH.
Le rôle du GOPATH
GOPATH spécifie les répertoires dans lesquels Go recherchera les packages. Dans l'exemple fourni, le projet se trouve dans $GOPATH/src/project, ce qui signifie que Go s'attendra à ce que le nom du package corresponde à la structure du répertoire.
Limitations relatives de l'importation
Les chemins d'importation relatifs vous permettent de référencer des packages dans le répertoire courant ou ses sous-répertoires. Dans ce cas, le package "models" se trouve dans le sous-répertoire "models" du projet.
Cependant, lors de la compilation ou de l'installation d'un package à l'aide de go build ou go install, les importations relatives ne sont pas entièrement prises en charge. Ces outils s'attendent à ce que les chemins d'accès aux packages soient absolus ou suivent la structure standard décrite dans « Comment écrire du code Go ».
Exception du répertoire personnel
Lorsque le projet est localisé dans le répertoire personnel (par exemple, ~/project), les importations relatives fonctionnent comme prévu. En effet, le répertoire personnel ne fait pas partie de GOPATH et Go recherchera les packages dans le répertoire actuel et ses sous-répertoires.
Solution
Pour surmonter les limitations d'importations relatives dans GOPATH, il est recommandé de structurer votre code selon les directives fournies dans « Comment écrire du code Go ». Cela implique d'utiliser des chemins d'importation absolus ou d'organiser vos packages d'une manière qui s'aligne sur la structure GOPATH.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!