17
votes

VSCode: impossible d'importer le package Golang

J'écris un projet Go dans mon GoPath et j'utilise le package Redigo pour me connecter à un serveur Redis. L'application fonctionne bien, mais dans VSCode, il y a cette erreur ennuyeuse lors de l'importation de package, qui empêche VSCode de donner des suggestions intellisense

Impossible d'importer github.com/gomodule/redigo/redis (aucune donnée de package pour le chemin d'importation github.com/gomodule/redigo/redis)

Voici mes paramètres VSCode.json

set GOARCH=amd64
set GOBIN=C:\Users\Francesco\Go\bin
set GOCACHE=C:\Users\Francesco\AppData\Local\go-build
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Users\Francesco\Go
set GOPROXY=
set GORACE=
set GOROOT=c:\go
set GOTMPDIR=
set GOTOOLDIR=c:\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=C:\Users\Francesco\Go\src\test\go.mod
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\FRANCE~1\AppData\Local\Temp\go-build928398422=/tmp/go-build -gno-record-gcc-switches

J'ai déjà le GO111MODULE env var activé, c'est la sortie de go env

{
    "editor.fontSize": 14,
    "editor.formatOnPaste": true,
    "editor.multiCursorModifier": "ctrlCmd",
    "editor.snippetSuggestions": "top",
    "extensions.ignoreRecommendations": false,
    "workbench.statusBar.visible": true,
    "workbench.iconTheme": "vscode-great-icons",
    "files.autoSave": "afterDelay",
    "go.useLanguageServer": true,
    "go.alternateTools": {
        "go-langserver": "bingo"
    },
    "go.toolsEnvVars": {
        "GO111MODULE": "on"
    },
    "go.languageServerExperimentalFeatures": {
        "autoComplete": true,
        "documentSymbols": true,
        "findReferences": true,
        "format": true,
        "goToDefinition": true,
        "goToTypeDefinition": true,
        "hover": true,
        "signatureHelp": true,
        "rename": true,
        "workspaceSymbols": true,
    },
    "go.lintTool": "golangci-lint",
    "go.lintFlags": [
        "--fast",
        "-E", "goimports",
        "-E", "gocritic",
        "-E", "gocyclo",
        "-E", "gosec",
        "-E", "maligned",
        "-E", "scopelint",
        "-E", "interfacer",
        "-E", "goconst",
        "-E", "unconvert",
        "-E", "unparam",
        "-E", "prealloc",
        "-E", "varcheck",
    ],
    "go.formatTool": "goimports",
    "editor.minimap.enabled": false,
    "breadcrumbs.enabled": false,
    "git.autofetch": true,
    "workbench.startupEditor": "newUntitledFile",
    "explorer.confirmDelete": false,
    "git.enableSmartCommit": true,
    "git.confirmSync": false,
    "window.zoomLevel": 0,
    "explorer.confirmDragAndDrop": false
}

Que dois-je changer pour que cela fonctionne?


0 commentaires

4 Réponses :


31
votes

Cela m'arrive dans quelques situations spécifiques. Voici mon processus de dépannage:

  1. Avez-vous couru go get github.com/gomodule/redigo/redis ?

  2. Parfois, j'ai un problème similaire lorsque j'ouvre mon éditeur dans une racine différente de celle de mon projet.

.  <- editor open here
| 
|_Folder
  | main.go
  1. Assurez-vous que vos outils sont à jour: exécutez ctrl + shift + p , tapez Go et choisissez Install/Update tools .

  2. Essayez de déplacer votre projet hors du GOPATH et de configurer go.mod pour cela.

  3. Redémarrez l'éditeur


2 commentaires

On dirait que la mise à jour a résolu le problème. J'ai déjà utilisé la commande go get et l'éditeur était ouvert dans le dossier racine du projet. Je vais essayer de mettre à jour les outils go plus fréquemment, je suppose: P


ce problème me dérange depuis plus d'un an, j'ai tout essayé et votre deuxième point concernant l'ouverture de l'éditeur en root était la solution à laquelle je m'attendais le moins à fonctionner, mais c'est le cas - merci beaucoup



4
votes

J'ai rencontré un problème similaire, mais la situation est légèrement différente. J'ai rencontré ce problème dans VSCode remote, et même la bibliothèque de base comme net/http ne peut pas être importée. J'ai trouvé que c'était à cause de certaines erreurs de syntaxe dans d'autres fichiers sous le même package, telles que des undefined variables . Lorsque j'ai résolu ces erreurs de syntaxe et redémarré VSCode, j'ai trouvé que le problème était résolu.


0 commentaires

2
votes

J'ai rencontré ce problème lorsque j'avais deux fichiers dans un package qui avaient des noms de package différents. Par exemple: un fichier avait package main tandis que l'autre avait package app .

S'assurer que tous les fichiers ont le même nom de package entraînera des importations dans le package pour recommencer à fonctionner.


0 commentaires

1
votes

J'ai eu le même genre de problème avec un package différent (sur mac),

  1. Mettre à jour les outils go - ctrl + shift + p ou cmd + shift + p et mettre à jour / installer les outils go
  2. Redémarrez VScode

Problème résolu


0 commentaires