首页 > 解决方案 > VSCode 在新的 GO 安装中找不到包

问题描述

我刚刚在新计算机上安装了带有工具的 Go 和 Visual Studio Code。访问我现有的项目时,我遇到了导入问题,例如:

could not import golang.org/x/text/encoding/charmap (cannot find package \"golang.org/x/text/encoding/charmap\" in any of  
C:\Program Files\Go\src\golang.org\x\text\encoding\charmap (from $GOROOT)
C:\Users\allan\go\src\golang.org\x\text\encoding\charmap (from $GOPATH))

GOPATH=C:\Users\allan\go  
OS version: Windows 10.0.19043 Build 19043  
GO version: go1.17.1 windows/amd64  
Visual Studio Code version: 1.60.2 (user setup)

该软件包实际上已安装go get ..
并已安装在:

c:\Users\allan\go\pkg\mod\golang.org\x\text@v0.3.7\encoding\charmap\charmap.go

我注意到两件事:

  1. 编译器寻找C:\Users\allan\go\src\golang.org\...而不是..\pkg\mod\golang.org\...

  2. 安装的软件包具有名称text@v0.3.7,而不仅仅是text.
    但是,go.sum文件包括:

    golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=  
    golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=  

所以,我猜编译器应该找出要使用的版本。


项目文件夹go.mod

module github.com/Orionsg/util

go 1.16

require golang.org/x/text v0.3.7

go.sum:

golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=

Visual Studio Code 或其他 Go 工具是否与 Go 安装不同步?

我可以做些什么来让 Go 编译器使用包的正确目录位置吗?

还有其他建议吗?

标签: govisual-studio-code

解决方案


我终于发现出了什么问题。这是一个 VSCode 问题:

在 VSCode 中打开文件夹时,它不再支持打开一个顶层文件夹,其下有项目文件夹,可以在访问不同项目时展开和关闭。这早些时候工作得很好。

现在,必须将每个项目作为顶级文件夹单独打开,否则导入检查无法正常工作。


推荐阅读