Heim >Backend-Entwicklung >Golang >Wie importiere ich lokale Pakete in Go?
In der Go-Sprache können Sie lokale Pakete importieren, indem Sie relative oder absolute Pfade verwenden. Stellen Sie zunächst sicher, dass Ihr lokales Paket über eine Verzeichnisstruktur verfügt, die gemäß den Go-Sprachspezifikationen organisiert ist. Verwenden Sie dann in Ihrer Go-Datei das Schlüsselwort import, um den Pfad zum Paket zu importieren. Beim Import lokaler Pakete können Sie relative oder absolute Pfade verwenden. Wenn sich Ihre Pakete im selben Verzeichnis befinden, können Sie zum Importieren relative Pfade verwenden, z. B. import „./utils“. Wenn sich Ihr Paket in einem anderen Verzeichnis befindet, können Sie zum Importieren einen absoluten Pfad verwenden, z. B. import „github.com/username/package/utils“. Auf diese Weise können Sie das lokale Paket erfolgreich importieren und seine Funktionen und Variablen verwenden.
Ich bin neu hier und arbeite an einem Beispielcode, den ich lokalisieren möchte.
In der ursprünglichen main.go
Importerklärung heißt es:
import ( "log" "net/http" "github.com/foo/bar/myapp/common" "github.com/foo/bar/myapp/routers" )
Jetzt bin ich in /home/me/go/src/myapp
中有 common
和 routers
Sack
Also habe ich die Importanweisung wie folgt umgewandelt:
import ( "log" "net/http" "./common" "./routers" )
Aber wenn ich go install myapp
ausführe, erhalte ich die folgende Fehlermeldung:
can't load package: /home/me/go/src/myapp/main.go:7:3: local import "./common" in non-local package
Außerdem erhalte ich Folgendes, wenn ich common
和 routers
而不是 ./common
和 ./routers
in der Importanweisung verwende:
myapp/main.go:7:3: cannot find package "common" in any of: /usr/local/go/src/common (from $GOROOT) /home/me/go/src/common (from $GOPATH) myapp/main.go:8:2: cannot find package "routers" in any of: /usr/local/go/src/routers (from $GOROOT) /home/me/go/src/routers (from $GOPATH)
Wie kann ich dieses Problem lösen?
Nun, ich habe das Problem gelöst.
Grundsätzlich ist der Startpfad für den Go-Import $HOME/go/src
Also muss ich nur myapp
vor dem Paketnamen hinzufügen, das heißt, der Import sollte lauten:
import ( "log" "net/http" "myapp/common" "myapp/routers" )
Das obige ist der detaillierte Inhalt vonWie importiere ich lokale Pakete in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!