Heim >Backend-Entwicklung >Golang >Warum erhalte ich in meinem Go-Projekt die Fehlermeldung „Paket XXX ist nicht in GOROOT'?

Warum erhalte ich in meinem Go-Projekt die Fehlermeldung „Paket XXX ist nicht in GOROOT'?

Susan Sarandon
Susan SarandonOriginal
2024-12-19 00:11:10962Durchsuche

Why Am I Getting the

Fehler „Paket 🎜>

Das Projekt ist wie folgt aufgebaut folgt:
  • GOROOT ist auf den richtigen Pfad eingestellt (z. B. C:Go).
    src/
    |--project
       |--game
           |--entity
               |--whatever.go
           |--game_stuff.go
       |--server
  • Ursache
In neueren Versionen von Go (nach 1.13) ist das Festlegen von Umgebungsvariablen wie GOPATH und GOBIN nicht mehr erforderlich. Stattdessen sollte das Projekt im Stammverzeichnis eine go.mod-Datei enthalten, die es als Go-Modul kennzeichnet.

Lösung

Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus:

Erstellen Sie eine go.mod-Datei:
    Führen Sie im Stammverzeichnis des Projekts go mod init aus [remote-repo.com/username/repository].
  1. Definieren Sie das Hauptpaket:
  2. Geben Sie in der Datei go.mod den Paketpfad des Hauptpakets an (z. B. github.com). /IhrName/Rechnerv3) und seine Hauptdatei (z. B. main.go).
  3. Veraltete Umgebung entfernen Variablen:
  4. Wenn Sie zuvor GOPATH und GOBIN festgelegt haben, löschen oder kommentieren Sie diese Zeilen aus Ihrer Umgebungskonfiguration.
  5. Erstellen Sie das Projekt neu oder führen Sie es aus:
  6. Führen Sie go build oder go run erneut aus Befehl, der nun die Struktur des Projekts korrekt erkennt und das entsprechende erstellt oder ausführt Paket.
  7. Beispiel
Für die bereitgestellte Beispielprojektstruktur:

Erstellen Sie eine go.mod-Datei im Projektstammverzeichnis und fügen Sie sie ein Folgendes:
  1. Stellen Sie sicher, dass sich main.go im Projekt/Server befindet Verzeichnis.
    module github.com/myorg/myproject
    
    go 1.17
    
    require (
     github.com/myorg/gameutils v1.2.3
    )
  2. Veraltete Umgebungsvariablen entfernen oder auskommentieren:
  3. Go build -o server project/server erneut ausführen, um das Projekt zu erstellen.
    # GOPATH=$HOME/go  # Assuming previous GOPATH setting
  4. Zusätzliche Hinweise

Wenn das Projekt externe Pakete verwendet, stellen Sie sicher, dass diese mit go get oder installiert werden go mod aufgeräumt.

    Wenn der Fehler weiterhin besteht, versuchen Sie, den Go-Cache mit go clean -modcache zu leeren.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meinem Go-Projekt die Fehlermeldung „Paket XXX ist nicht in GOROOT'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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