Comment corriger l'erreur en Go "go: go.mod file not found in current directory or any parent directory; see 'go help modules'" ?

Le langage Go a été créé par Google afin de permettre la création des programmes conçus pour la performance, avec un langage plus simple et récent que le sont les langages C ou C++. C'est un langage jeune qui évolue vite avec le soutien de sa communauté et de Google. Lorsque vous avez créé votre programme, si vous obtenez le message d'erreur "go: go.mod file not found in current directory or any parent directory; see 'go help modules'", il existe plusieurs causes possibles.

La première chose à contrôler dans votre projet est le fait d'avoir utilisé la commande "go mod init". Si vous travaillez sur un module, cette commande est obligatoire afin de créer le fichier "go.mod" dont a besoin votre programme. Si vous ne l'avez pas utilisée, il faut se placer dans le répertoire de votre projet et l'utiliser avec votre terminal ou invite de commandes.

go mod init mon_projet

L'autre cause possible de l'erreur vient de la variable d'environnement "GO111MODULE". Vous devez changer sa valeur selon la structure de vos dossiers. Par défaut, la valeur de cette variable est fixée à "on" si vous avez installé sur votre ordinateur la version 1.16 au moins du langage, ou "auto" si vous avez mis à jour depuis une version antérieure. Avec la valeur "on", le compilateur utilise les modules installés au niveau de votre système (le dossier est indiqué dans la variable "GOPATH"), même si votre projet est stocké dans ce dossier (la présence d'un fichier "go.mod" dans le dossier de votre projet est obligatoire). Avec la valeur "off", le compilateur n'utilise que les modules avec la variable "GOPATH", même en dehors de ce dossier. La valeur "auto" adopte un comportement intermédiaire. Le comportement est celui de la valeur "on" si votre dossier est en dehors du dossier mentionné dans la variable "GOPATH", alors que c'est celui de la valeur "off" dans le cas contraire. La commande "go env" permet de changer la valeur de cette variable. Essayez de changer la valeur et relancez ensuite la compilation du projet.

//Changez la valeur selon votre installation
go env -w GO111MODULE=auto
go env -w GO111MODULE=off
go env -w GO111MODULE=on

Divers