必须装齐Go环境(1.21+)、protoc及protoc-gen-go、kratos v2 CLI、wire四样工具,缺一不可;否则kratos new会卡在克隆模板或生成代码阶段。

必须装齐这四样,缺一不可,否则 kratos new 会卡在克隆模板或生成代码阶段。
Go 环境(1.21+)和模块开关
Kratos v2 明确要求 Go 1.21 及以上,低于这个版本会导致 wire 注入失败、protoc-gen-go 插件不兼容。不是“能跑就行”,是底层依赖直接报错。
- 执行
go version确认输出为go1.21.x或更高 - 必须开启 Go Modules:
go env -w GO111MODULE=on - 建议同时配置代理:
go env -w GOPROXY=https://goproxy.cn,direct,避免拉包超时
protoc 和 protoc-gen-go 插件
Kratos 的核心契约是 Protobuf,所有 API、gRPC Service、HTTP 路由都从 .proto 文件生成。没有 protoc,kratos proto client 和 kratos proto server 命令根本无法运行。
-
protoc是编译器本体,需单独下载二进制并加入$PATH(不能只靠go install) -
protoc-gen-go必须匹配你本地的 Go 版本和 Protobuf 运行时版本,推荐用go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - 验证方式:运行
protoc --version和protoc-gen-go --version,两者都得有输出
kratos CLI 工具(v2 版本)
不是 go-kratos/kratos 主库,而是独立的命令行工具 github.com/go-kratos/kratos/cmd/kratos/v2。v1 和 v2 的命令参数、模板结构完全不兼容。
- 安装命令必须带
/v2后缀:go install github.com/go-kratos/kratos/cmd/kratos/v2@latest - 安装后执行
kratos version,确认输出含v2.x.x,而非v1.x.x - 如果提示
command not found,90% 是$GOPATH/bin没进系统PATH,别跳过检查
wire 依赖注入工具
Kratos 默认用 wire 做 DI,项目启动前必须生成 wire_gen.go。没装 wire,kratos run 会报 no main found 或 cannot find package "xxx/wire"。
- 安装:
go install github.com/google/wire/cmd/wire@latest - 注意:它不参与
go mod tidy,必须手动装到本地 bin 目录 - 首次生成后,后续开发中只要改了
wire.go,就得再跑一次wire,不是一劳永逸
最容易被跳过的其实是 protoc 二进制本身——很多人以为装了 protoc-gen-go 就够了,结果 kratos proto client 报错说找不到 protoc 命令。它俩是上下游关系,缺一不可。


















