运行protoc生成Go代码时报protoc-gen-go插件找不到错误如何解决
解决方案
该报错本质是protoc调用Go生态的protobuf代码生成插件protoc-gen-go时,无法在系统PATH路径中找到对应可执行文件,按以下步骤修复即可:
1. 补全Go环境变量配置
Go安装的二进制工具默认存放在$GOPATH/bin路径下,你使用zsh作为shell,需要将该路径加入系统PATH:
- 编辑
~/.zshenv配置文件,在原有protobuf环境变量配置后新增两行:
export GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin
- 执行命令让配置立即生效:
source ~/.zshenv
2. 重新安装protoc-gen-go插件
旧版本的go get命令不适合用于安装二进制工具,使用go install命令重新安装指定版本的插件:
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.25.0
如果后续需要生成gRPC相关代码,可以同步安装gRPC生成插件:
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
3. 验证插件可用性
执行以下命令确认插件可被系统识别:
protoc-gen-go --version
正常会输出对应版本号,例如protoc-gen-go v1.25.0。
4. 重试代码生成
执行原有生成命令即可正常生成Go代码:
protoc api/v1/*.proto --go_out=. --go_opt=paths=source_relative --proto_path=.
可选兜底方案
如果完成上述步骤仍然报错,可以手动指定插件路径执行生成命令:
protoc api/v1/*.proto --go_out=. --go_opt=paths=source_relative --proto_path=. --plugin=protoc-gen-go=$GOPATH/bin/protoc-gen-go
内容的提问来源于stack exchange,提问作者RedHood
相关产品推荐
相关产品推荐

