Als Anfänger bin ich auf diesen Fehler gestoßen, als ich verschiedene go-Befehle ausprobiert habe (Erstellen, Ausführen und Installieren). Kurz gesagt, kann man nicht gehen installiert eine filename.go . Sie können nur ein Paket installieren.
Das war verwirrend, weil ich das gelernt hatte:
nate:~/work/src/dir $ go run hello/hello.go
hello, world.
funktioniert super. Aber ich konnte nicht herausfinden, warum die Installation nicht funktionieren würde:
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)
Egal in welchem Verzeichnis ich war:
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)
Diese Verwirrung ist, weil nur laufen gehen mit Go-Quelldateien (Dateinamen, die auf .go enden) funktioniert und go install nur Pakete akzeptiert. Pakete werden nach ihren Importpfaden oder dem Dateisystempfad benannt. So:
nate:~/work/src/dir $ go install dir/hello
nate:~/work/src/dir $ go install ./hello/
nate:~/work/src/dir/hello $ go install .
Alle arbeiten großartig. Der erste bezieht sich auf das Paket nach Importpfad (vorausgesetzt, $ GOPATH = "/ home / nate / work", die go-Tools suchen in / home / nate / work / src nach Quellcode), die anderen werden als Dateisystem interpretiert Wege wegen der führenden Perioden.
Siehe auch die GOPATH-Dokumente .
go install
Installiert Pakete, nicht einzelne Dateien. Bitte lesen Sie golang.org/cmd/go und sehen Sie, wie Sie Ihre Dateien einrichten.