Wie importiere ich lokale Pakete in Go?

WBOY
Freigeben: 2024-02-11 14:27:08
nach vorne
940 Leute haben es durchsucht

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"
)
Nach dem Login kopieren

Jetzt bin ich in /home/me/go/src/myapp 中有 commonroutersSack

Also habe ich die Importanweisung wie folgt umgewandelt:

import (
    "log"
    "net/http"
    "./common"
    "./routers"
)
Nach dem Login kopieren

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
Nach dem Login kopieren

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)
Nach dem Login kopieren

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"
)
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!