【发布时间】:2021-07-22 21:52:32
【问题描述】:
我正在尝试从 gRPC 书籍中找出示例,但我很难弄清我所做的事情有什么问题。
我有一个 .proto 文件,我可以将它编译到 .pb.go 存根中。
我成功运行了这些命令,并为客户端和服务器生成了 .pb.go 文件,所以没有问题:
service % protoc -I ecommerce ecommerce/product_info.proto --go_out=plugins=grpc:./ecommerce
client % protoc -I ecommerce ecommerce/product_info.proto --go_out=plugins=grpc:./ecommerce
然而,虽然服务器的 go 文件可以解析所有的导入,但同样的情况不会发生在客户端。
查看文件夹结构,我预计一切都会好起来(我这周刚开始使用 go 和 gRPC,所以请理解)。
我的 IDE 是 GoLand,我怀疑路径有问题,但我现在不知道从哪里开始。
【问题讨论】:
-
您是否尝试过同步依赖操作(Option/Alt+Enter 在红色导入语句上)?
-
您的
client的go.mod在哪里? (我可以在service文件夹中看到一个,但在client中看不到)。如果您没有更进一步的树,那么您可能需要在client文件夹中运行go mod init [module-path](后跟go mod tidy)。 -
@Brits 谢谢,就是这样,客户端中缺少的 .mod 文件。应该把这个作为答案,这样我就可以投票了。
-
请考虑阅读本文以备将来的问题stackoverflow.com/help/how-to-ask