VSCode go get 之后报错 can not import find [...] in any of [...]

本文解决了在Go 1.13及更高版本中使用VSCode编写Go代码时遇到的cannot find package错误。该错误源于Go Modules模式下,依赖不再位于$GOPATH/src内。解决方案是将工作目录移出$GOPATH/src。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:


        在go get 之后,package 已经下载在 $GOPATH/pkg/mod 下。但使用 VSCode 写 Go 时仍然出现 can not import find [...] in any of [...] 报错。如下图:

问题产生原因:

        在 Go 1.13 之后(module 模式作为默认依赖管理方式后),使用 go get 命令 (示例如下)

go get github.com/go-redis/redis/v8 

        会将 package 下载到 $GOPATH/pkg/mod 下。

        但是为了保持兼容性。在$GOPATH/src 目录下的 module 会使用旧的 GOPATH 模式处理依赖,即前往 GOPATH 或 GOROOT 下查找。

        但在 module 模式下,go get 已经不会在 GOPATH/src 目录中下载包。所以出现了上述问题。

解决办法:

        只需要将工作目录移出 $GOPATH/src 即可解决

参考:


官方文档: Using Go Modules - go.dev

stackoverflow: Go Modules importing issue in VSCode ("cannot find package [...] in any of [...]") - Stack Overflow

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值