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?
4 Réponses :
Cela m'arrive dans quelques situations spécifiques. Voici mon processus de dépannage:
Avez-vous couru go get github.com/gomodule/redigo/redis
?
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
Assurez-vous que vos outils sont à jour: exécutez ctrl
+ shift
+ p
, tapez Go
et choisissez Install/Update tools
.
Essayez de déplacer votre projet hors du GOPATH et de configurer go.mod pour cela.
Redémarrez l'éditeur
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
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.
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.
J'ai eu le même genre de problème avec un package différent (sur mac),
ctrl
+ shift
+ p
ou cmd
+ shift
+ p
et mettre à jour / installer les outils goProblème résolu