【问题标题】:'protoc-gen-go-grpc: program not found or is not executable', despite all the efforts'protoc-gen-go-grpc: program not found or is not executable',尽管付出了所有努力
【发布时间】:2021-07-24 12:27:15
【问题描述】:

我正在尝试从该项目https://github.com/penthaapatel/grpcblog 运行 makefile 命令“gen”。命令是:protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative blog/blog.proto 但是我得到一个错误:

protoc-gen-go-grpc: program not found or is not executable
--go-grpc_out: protoc-gen-go-grpc: Plugin failed with status code 1.
make: *** [/home/deckard/go/src/grpcblog/Makefile:2: gen] Error 1

我使用的是 Ubuntu 20.04? Golang-1.13.8 与 $GOROOT=/usr/lib/go-1.13 和 $GOPATH=/home/deckard/go($HOME 是 /home/deckard)。协议是libprotoc v.3.6.1.。我同时安装了 protobuf-compiler:

sudo apt install protobuf-compiler

go get -u github.com/golang/protobuf/{proto,protoc-gen-go}

有一个文件夹 /home/deckard/go/src/github.com/golang/protobuf/home/deckard/go/src/google.golang.org/protobuf/home/deckard/go/src/google.golang.org/protobuf,我想,我需要的一切。 我的 bashrc 配置(尝试了几种方法,所以事情相互重叠):

export GOROOT=/usr/lib/go-1.13
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOROOT:$GOPATH:$GOBIN
export PATH=$PATH:$GOPATH/bin
export GO_PATH=~/go
export PATH=$PATH:/$GO_PATH/bin

所以我从这里尝试了解决方案:protoc-gen-go: program not found or is not executable,但它们都没有帮助我。任何线索都会有所帮助,因为我卡住了而且很累。

更新:ls -l /home/deckard/go/bin/protoc-gen-go-grpc 显示 rwxrwxr-x 1 deckard deckard 7970222 мая 1 14:55 /home/deckard/go/bin/protoc-gen-go-grpcprintenv PATH 返回 /home/deckard/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/deckard/.dotnet/tools:/usr/lib/go-1.13:/home/deckard/go:/home/deckard/go/bin:/home/deckard/go/bin://home/deckard/go/bin

更新:which protoc 返回/usr/bin/protoc(尝试将其从预编译的二进制文件安装到/home/deckard/.local/bin/protoc,没有帮助)。在这两种情况下,protoc-gen-go-grpc --version 返回protoc-gen-go-grpc 1.1.0。我还尝试将所有内容从 google.golang.org/protobuf 复制到 google.golang.org/protobuf,没有结果。

【问题讨论】:

  • 请将ls -l /home/deckard/go/bin/protoc-gen-go-grpcprintenv PATH 的输出添加到您的问题中。
  • @Brits 做到了 :)
  • 谢谢 - 您的路径存在一些问题(重复、无效路径);我怀疑这是问题,但可能值得整理。请运行which protoc(以防快照版本运行)和protoc-gen-go-grpc --version(由于语言原因无法读取权限,所以这只是确认它运行)。请注意,您应该考虑从github.com/golang/protobuf 迁移到google.golang.org/protobuf(最新的protoc 也可能是值得升级的)。
  • @Brits 更新了问题,看起来我解决了我的问题。非常感谢。

标签: go protocol-buffers grpc proto protoc


【解决方案1】:

所以我删除了github.com/golang/protobuf 文件夹,似乎google.golang.org/protobuf 已经开始索引,一切都刚刚开始工作。

【讨论】:

    猜你喜欢
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 2015-09-04
    • 2021-04-19
    相关资源
    最近更新 更多