GOPATH et GOROOT dans Go : valeurs correctes et erreurs courantes

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

GOPATH et GOROOT : valeurs correctes et erreurs courantes

\n\n

Si vous débutez avec Go, vous rencontrerez forcément les abréviations mystérieuses GOPATH et GOROOT. La question « What should be the values of GOPATH and GOROOT? » est l'une des plus posées sur Stack Overflow, et pour cause. Les débutants s'y perdent, les configurent mal et obtiennent des erreurs étranges lors de la compilation de leurs projets.

\n\n

Dans cet article, on vous explique simplement à quoi servent ces variables, quelles valeurs leur attribuer par défaut, et comment passer à l'approche moderne avec go modules. C'est parti !

\n\n

Qu'est-ce que GOROOT ?

\n\n

GOROOT est le chemin vers le dossier où le compilateur Go est installé. Ce dossier contient les paquets standards (fmt, net, os, etc.), ainsi que les binaires go, gofmt et d'autres utilitaires.

\n\n

La plupart des développeurs n'ont pas besoin de définir GOROOT explicitement. Si vous avez installé Go via l'installateur officiel ou un gestionnaire de paquets, le compilateur connaît déjà son emplacement.

\n\n

Comment vérifier la valeur actuelle de GOROOT ?

\n

Ouvrez un terminal et exécutez :

\n
go env GOROOT
\n\n

Exemple de sortie sous Linux :

\n
/usr/local/go
\n\n

Sous Windows (si l'installation est par défaut) :

\n
C:\\Program Files\\Go
\n\n

Quand faut-il modifier GOROOT ?

\n
    \n
  • Si vous avez déplacé le dossier Go vers un autre emplacement.
  • \n
  • Si vous avez plusieurs versions de Go installées et souhaitez basculer entre elles.
  • \n
  • Si vous compilez Go à partir des sources et l'avez installé dans un répertoire non standard.
  • \n
\n\n

Dans tous les autres cas, laissez GOROOT tranquille — laissez Go s'en occuper lui-même.

\n\n

Qu'est-ce que GOPATH ?

\n\n

Quant à GOPATH, c'est une variable bien plus intéressante. Historiquement, Go exigeait que tout votre code se trouve dans un seul espace de travail. Cet espace était défini par GOPATH.

\n\n

Par défaut, GOPATH pointe vers :

\n
    \n
  • Linux/macOS : $HOME/go
  • \n
  • Windows : %USERPROFILE%\\go
  • \n
\n\n

À l'intérieur de ce dossier, la structure standard est :

\n
go/\n├── bin/        # binaires compilés\n├── pkg/        # fichiers objets compilés et cache\n└── src/        # code source de vos projets\n    ├── github.com/\n    │   └── user/\n    │       └── monprojet/\n    └── exemple.com/\n        └── monapp/
\n\n

Comment vérifier la valeur actuelle de GOPATH ?

\n
go env GOPATH
\n\n

Quelles doivent être les valeurs de GOPATH et GOROOT ? (Valeurs correctes)

\n\n

Voici la réponse courte à la question principale :

\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
VariableValeur par défaut (Linux/macOS)Valeur par défaut (Windows)
GOROOT/usr/local/goC:\\Program Files\\Go
GOPATH$HOME/go%USERPROFILE%\\go
\n\n

Important : GOPATH et GOROOT doivent être des dossiers différents. Ne les définissez jamais avec la même valeur !

\n\n

Erreurs typiques et comment les corriger

\n\n

Erreur 1 : « GOPATH not set » ou « cannot find package »

\n

Si vous utilisez l'ancienne approche (avant les versions 1.11-1.13), Go cherche les paquets dans $GOPATH/src. Si vous avez placé votre projet ailleurs, le compilateur ne le trouvera pas.

\n\n

Solution :

\n
    \n
  • Soit déplacez votre projet dans $GOPATH/src.
  • \n
  • Soit
  • \n

Blogs

Book Recommendations