Golang Go语言中vscode使用go module时即使下载了mod cache还是提示找不到package

发布于 1周前 作者 h691938207 来自 Go语言

Golang Go语言中vscode使用go module时即使下载了mod cache还是提示找不到package
各位大佬好,我最近在学 go。我在 win 上用 vscode 搭建了 go 1.14 环境,用的是 gopls 语言服务器。

我现在是 github 上找些 go 项目拉到本地来学 go 的,有些项目 go.mod 里依赖很多第三方模块,go install 时会在 pkg/mod 自动下载依赖的三方模块。但是即使下载了 mod cache,vscode 里在 import 处还是始终提示找不到 package。

听说前几个版本的 go 不支持 module,以前 go install 是会在 src/里下载存放三方的 package,但现在在使用 module 情况下三方包是放在 pkg/mod 里了。我现在为了让 import 提示和转到定义能正常工作,不可能手动在 src/里下这么多的三方包。如果直接把 pkg/mod 里的缓存复制到 src/里也不太现实,因为缓存文件夹名都有版本号后缀。

各位大佬是怎么解决这个问题的?谢谢指导!


更多关于Golang Go语言中vscode使用go module时即使下载了mod cache还是提示找不到package的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

10 回复

同新手,弱弱的问一下不是应该 go get -u 么

更多关于Golang Go语言中vscode使用go module时即使下载了mod cache还是提示找不到package的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


很明显是你 vscode 配的有问题

vscode 还去 src 下面找说明没有使用 go module,但是 go 1.14 应该是默认使用的。

我在 linux 上使用 vscode,左下角会有一个 Go Modules 的小图标,你可以检查一下

可能是 gopls 挂掉了,结束一下进程试试

这个命令把 pkg/mod 里的三方模块全更到最新了。问题刚刚解决,vscode 的工作空间我打开到了 mod 目录的上一级了,所以 import 从 src 找包没从 pkg/mod 找包。

多谢,你这提醒了我,我检查了下发现是我 vscode 的工作空间打开到了 mod 目录的上一级了,所以 import 从 src 找包没从 pkg/mod 找包。

goland 他不香么

别折腾,听我的,直接上 goland

大佬好,遇到了同样的问题。在 GitHub 上拉的一个项目里面有多个文件夹,有多个 go.mod
请问这种情况的话,工作区在 mod 的上一级可以通过什么配置使 import 正常嘛

在VS Code中使用Go语言及其modules功能时,遇到“找不到package”的提示,通常可能是由以下几个原因引起的:

  1. GOPATH与GOROOT配置:确保你的GOPATHGOROOT环境变量设置正确。GOROOT是Go语言的安装路径,而GOPATH是你的工作区路径。在VS Code中,可以通过设置go.gorootgo.gopath来明确指定这些路径。

  2. Module初始化:确保你的项目已经初始化为一个Go module。这可以通过在项目根目录下运行go mod init <module-name>来完成。<module-name>通常为你的项目或组织的域名反向解析路径。

  3. 依赖未正确下载:有时候,依赖可能没有正确下载到GOPATH/pkg/mod中。尝试在VS Code的终端中运行go mod tidygo mod verify来清理和验证依赖。

  4. 代理设置:如果你在中国大陆等网络环境下,可能需要配置Go的代理来访问官方的Go module镜像。可以通过设置GOPROXY环境变量来实现,例如export GOPROXY=https://goproxy.cn,direct

  5. 重启VS Code:有时候,VS Code的插件或环境需要重启才能识别新的配置或依赖。

检查以上几点,通常可以解决大部分关于Go modules和VS Code集成的问题。如果问题依旧存在,建议查看VS Code的Go插件输出日志,以获取更详细的错误信息。

回到顶部