En tant que débutant, j'ai rencontré cette erreur lorsque j'essayais diverses commandes go (construire, exécuter et installer). Bref, vous ne pouvez pas aller installer un filename.go . Vous ne pouvez installer qu'un package.
C'était déroutant, car j'avais appris que:
nate:~/work/src/dir $ go run hello/hello.go
hello, world.
fonctionne très bien. Mais je ne pouvais pas comprendre pourquoi l' installation ne fonctionnerait pas:
nate:~/work/src/dir $ go install hello/hello.go
go install: no install location for .go files listed on command line (GOBIN not set)
nate:~/work/src/dir $ go install hello
can't load package: package hello: cannot find package "hello" in any of:
/opt/go/src/hello (from $GOROOT)
/home/ubuntu/work/src/hello (from $GOPATH)
Quel que soit le répertoire dans lequel je me trouvais:
nate:~/work/src/dir $ cd hello
nate:~/work/src/dir/hello $ go install hello.go
go install: no install location for .go files listed on command line (GOBIN not set)
nate:~/work/src/dir/hello $ go install hello
can't load package: package hello: cannot find package "hello" in any of:
/opt/go/src/hello (from $GOROOT)
/home/ubuntu/work/src/hello (from $GOPATH)
Cette confusion est parce que l' exécution de go ne fonctionne avec les fichiers sources Go (noms de fichiers qui se terminent par .go) et aller installer uniquement accepte les paquets. Les packages sont nommés par leur chemin d'importation ou le chemin du système de fichiers. Donc:
nate:~/work/src/dir $ go install dir/hello
nate:~/work/src/dir $ go install ./hello/
nate:~/work/src/dir/hello $ go install .
tout fonctionne très bien. Le premier fait référence au package par chemin d'importation, (étant donné que $ GOPATH = "/ home / nate / work", les outils go recherchent le code source dans / home / nate / work / src), les autres sont interprétés comme un système de fichiers chemins en raison des périodes de pointe.
Voir aussi la documentation GOPATH .
go install
installe des packages et non des fichiers individuels. Veuillez lire l'intégralité de golang.org/cmd/go et voir comment configurer vos fichiers.