我试图从一本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,所以请理解)。
我的集成开发环境是GoLand,我怀疑路径有问题,但我不知道现在从哪里开始。
发布于 2021-07-23 17:29:56
根据评论,截图显示了service中的go.mod,但client中没有。由于goland将在启用'Go Modules Integration‘的情况下运行,因此它将需要一个模块(我强烈建议使用模块!)。
最简单的修复方法是在客户端文件夹中运行go mod init [module-path] (然后运行go mod tidy)。您还可以在backend文件夹(或productinfo文件夹)中建立一个模块,该模块将由子文件夹共享。
https://stackoverflow.com/questions/68491893
复制相似问题