Heim  >  Artikel  >  Backend-Entwicklung  >  Wie importiere ich lokale Pakete in Go?

Wie importiere ich lokale Pakete in Go?

WBOY
WBOYnach vorne
2024-02-11 14:27:08908Durchsuche

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.

Frageninhalt

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 中有 commonroutersSack

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 commonrouters 而不是 ./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?

Lösung

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen