protoc-gen-go-grpc: программа не найдена или не исполняется [protoc-gen-go находится в PATH]

Я пытаюсь сгенерировать исходный код Go из файла .proto с помощью этой команды:

protoc greet/greetpb/greet.proto --go-grpc_out=plugins=grpc:.

и это структура каталогов:

greet/greetpb/greet.proto

Я пробовал все ответы, упомянутые здесь Но, похоже, ни один из них не работает.

Я подтвердил, что protoc-gen-go находится в PATH. Тем не менее, я получаю следующее:

protoc-gen-go-grpc: program not found or is not executable
Please specify a program using absolute path or make sure the program is available in your PATH system variable
--go-grpc_out: protoc-gen-go-grpc: Plugin failed with status code 1.

Дополнительные детали:

Go Version: go version go1.14.6 darwin/amd64
protoc version: libprotoc 3.12.3

Мой файл .zshrc:

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOROOT:$GOPATH:$GOBIN

person Aditya    schedule 03.08.2020    source источник
comment
Попробуйте добавить опцию -I=. -I=$GOPATH/src. -I Укажите каталог, в котором следует искать импорт.   -  person Зелёный    schedule 03.08.2020
comment
Я пробовал это protoc -I=. -I=absolute/path/to/dir/containting/proto/ greet/greetpb/greet.proto --go-grpc_out=plugins=grpc:., но все равно получаю ту же ошибку @ Зелёный Что здесь за импорт?   -  person Aditya    schedule 03.08.2020
comment
Вы можете попробовать эту команду go install google.golang.org/grpc/cmd/protoc-gen-go-grpc и установить --go-grpc_out=.   -  person Зелёный    schedule 03.08.2020
comment
_ / \ _ это сработало! Не могли бы вы объяснить разницу между двумя командами?   -  person Aditya    schedule 03.08.2020
comment
Честно говоря, я не знаю, суффикс out выглядит как опция для пути вывода в данном случае текущего каталога ..   -  person Зелёный    schedule 03.08.2020
comment
protoc-gen-go и protoc-gen-go-grpc - это два разных protoc плагина. В то время как первый генерирует код Go для определений сообщений protobuf, последний генерирует код Go для определений сервисов.   -  person Easwar Swaminathan    schedule 08.08.2020