登录
首页 >  Golang >  Go问答

VS Code Go:$GOPATH/go.mod 应该存在但不存在

来源:stackoverflow

时间:2024-03-18 12:39:30 439浏览 收藏

在 Visual Studio Code 中使用 Go 扩展时,如果遇到“$GOPATH/go.mod 应该存在但不存在”错误,可能是因为使用了模块化项目。此时,gopath 仅用于存储下载的源代码和编译后的命令,不再用于解析导入。因此,需要将 go.toolsgopath 设置为项目的根目录,以使 Go 扩展正常工作。

问题内容

我正在尝试在包含 go.mod 的包中使用 vs code 的 go 功能(例如“转到定义”)。但是,如果我进入存储库的主目录(使用 go.mod)和 code .,则会收到此错误:

加载工作区文件夹时出错(预期为 1,实际为 0)无法加载 file:///users/kurt/documents/http-enrollment-portal 的视图:错误:退出状态 1:stderr:$gopath/go.mod 存在,但应该存在不是

我了解到我可能需要更新 gopls 语言服务器,因此我按 cmd + shift + p 并选择“转到:安装/更新工具”并选择 gopls;但是,这给了我同样的错误:

go.toolsGopath setting is not set. Using GOPATH /Users/kurt/Documents/http-enrollment-portal:/Users/kurt/go
Installing 1 tool at /Users/kurt/Documents/http-enrollment-portal/bin in module mode.
  gopls

Installing golang.org/x/tools/gopls FAILED

1 tools failed to install.

gopls:
Error: Command failed: /usr/local/opt/[email protected]/bin/go get -v golang.org/x/tools/gopls
$GOPATH/go.mod exists but should not
$GOPATH/go.mod exists but should not

奇怪的是,“转到定义”在其他存储库中确实有效。我想一个可能的解决方案是设置 go.toolsgopath


解决方案


go env -w GOPATH=

gopath 和模块

this link

使用模块时,gopath 不再用于解析导入。不过,它仍然用于存储下载的源代码(在 gopath/pkg/mod 中)和编译后的命令(在 gopath/bin 中)。

终于介绍完啦!小伙伴们,这篇关于《VS Code Go:$GOPATH/go.mod 应该存在但不存在》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>