could not import google.golang.org/protobuf/proto
背景
import ("encoding/json""testing""google.golang.org/protobuf/proto"
)
在测试中需要使用proto,但是,import这个包之后,一直报could not import google.golang.org/protobuf/proto这个错误,尝试了各种方法,依然没有解决这个问题。
临时方案
执行go mod vendor这个命令。项目的目录下多了个文件夹。
- 原理 :该命令会将 go.mod 中声明的所有依赖(包括 google.golang.org/protobuf@v1.30.0 )复制到项目根目录下的 vendor 文件夹中 `vendor` 。
- 效果 :
- 构建时Go编译器会优先使用 vendor 目录中的依赖,避免了模块缓存( $GOPATH/pkg/mod )或网络下载可能导致的版本不一致问题。
- 从终端输出可见,编译器实际加载的是 vendor 目录中的protobuf代码。
疑问
问题本身并没有解决。有没有哪位大神遇到过类似的情况呢?无法理解,始终无法解决这个问题。