web-dev-qa-db-ja.com

protobufを構築してエンドポイントに移動できません

protobufバージョン2.6.1を使用(homebrew経由でインストール)

私は走ろうとしています

$ protoc --go_out=../cloud/ *.proto

このエラーが引き続き発生します。

$ protoc-gen-go: program not found or is not executable
$ --go_out: protoc-gen-go: Plugin failed with status code 1.

Goパスにprotoc-gen-goがインストールされています。他の誰かがこの問題を抱えていますか?

50
R.J. Robinson

protoc-gen-goは、Shellパスにある必要があります。つまり、Goパスとは異なるPATH環境変数にリストされているディレクトリの1つです。これをテストするには、コマンドラインでprotoc-gen-goと入力するだけです。「command not found」(または同様のコマンド)と表示されている場合は、PATHにありません。

46
Kenton Varda

を使用して

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

使用するよりも安全です

$ Sudo apt-get install golang-goprotobuf-dev

最新のprotoc-gen-goはlibを使用していますgithub.com/golang/protobuf/proto、ただしprotoc-gen-go in apt-get libを使用code.google.com/p/goprotobuf/proto現在は存在していませんでした。

23
Xibai Li
  1. GO_PATH-goパッケージが存在する場所を適切に定義する必要があります。つまり、GO_PATHはgoワークスペースです。 GO_PATH~/goでなければなりません。

  2. protoc-gen-goPATHにある必要があります。 protoc-gen-goは、インストール後に$GO_PATH/binに残ります。


次の2つの重要な行を~/.bash_profileに追加します。

export GO_PATH=~/go
export PATH=$PATH:/$GO_PATH/bin

次に、新しいシェルセッションを開始するか、次の行を入力する必要があります。

$ source ~/.bash_profile
12
Quy Tang

Ubuntu 18.04では、この問題を解決するために動作することが確認されています。

Sudo apt-get install golang-goprotobuf-dev

8
00imvj00

同じ問題に遭遇しました。

$ protoc --go_out=plugins=grpc:pb/ *.proto
protoc-gen-go: program not found or is not executable
--go_out: protoc-gen-go: Plugin failed with status code 1.

以下のソリューション:

protoc-gen-goのインストールディレクトリを見つけます。$PATHにある必要があります。

export PATH=$PATH:/path/to/dir

.bash_profileに追加することをお勧めします

echo $"export PATH=\$PATH:$(/path/to/dir)" >> ~/.bash_profile
source ~/.bash_profile

その後、すべてが大丈夫です。

2
pangpang

私が解決した方法:

  1. _$GOPATH/bin_を実行して、_export PATH=$PATH:$GOPATH/bin_をPATHに追加します
  2. _export PATH=$PATH:$GOPATH/bin_ファイル内の_.bash_profile_行の上にexport GOPATH=$(go env GOPATH)を追加します。
  3. 必要なパッケージに対して_go get -u_を再度実行します。
  4. あなたのケースでコード_protoc --go_out=../cloud/ *.proto_を実行します。
2
ShiningGo

Ubuntu 18.04.02 LTSを使用し、protocを使用してインストールしました

Sudo apt install protobuf-compiler

GOPATHとGOBINは正しく設定されていますが、protoc --go_out=. <filename>私は得ていた

protoc-gen-go: program not found or is not executable
--go_out: protoc-gen-go: Plugin failed with status code 1.

たくさんの場所を読んだ後、そのことを見つけることができました

go get -u github.com/golang/protobuf/protoc-gen-go

問題を修正することができました。これが誰かに役立つことを願っています。

0
Bhaskar Reddy

PATH変数のproton-gen-goへのパスが絶対であることを確認してください(つまり、/Users/me/go/binではなく~/go/bin

どうやらprotoc~を展開する方法を知りません。

0
Pep

Mbyは誰かを助けるでしょう。私はFedora 29を使用しています。

Goをインストールしたとき、次のことを行いました。

echo 'export GOPATH=$HOME/Go' >> $HOME/.bashrc
source $HOME/.bashrc

そこで、GOPATHをセットアップしました。次に私は:

echo 'export PATH=$PATH:$GOPATH/bin' >> $HOME/.bashrc
source $HOME/.bashrc

そして、私のprotocコンパイラーは魅力的です。

0
Dzintars