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がインストールされています。他の誰かがこの問題を抱えていますか?
protoc-gen-go
は、Shellパスにある必要があります。つまり、Goパスとは異なるPATH
環境変数にリストされているディレクトリの1つです。これをテストするには、コマンドラインでprotoc-gen-go
と入力するだけです。「command not found」(または同様のコマンド)と表示されている場合は、PATH
にありません。
を使用して
$ 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
現在は存在していませんでした。
GO_PATH
-goパッケージが存在する場所を適切に定義する必要があります。つまり、GO_PATH
はgoワークスペースです。 GO_PATH
は~/go
でなければなりません。
protoc-gen-go
はPATH
にある必要があります。 protoc-gen-go
は、インストール後に$GO_PATH/bin
に残ります。
次の2つの重要な行を~/.bash_profile
に追加します。
export GO_PATH=~/go
export PATH=$PATH:/$GO_PATH/bin
次に、新しいシェルセッションを開始するか、次の行を入力する必要があります。
$ source ~/.bash_profile
Ubuntu 18.04では、この問題を解決するために動作することが確認されています。
Sudo apt-get install golang-goprotobuf-dev
同じ問題に遭遇しました。
$ 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
その後、すべてが大丈夫です。
私が解決した方法:
$GOPATH/bin
_を実行して、_export PATH=$PATH:$GOPATH/bin
_をPATHに追加しますexport PATH=$PATH:$GOPATH/bin
_ファイル内の_.bash_profile
_行の上にexport GOPATH=$(go env GOPATH)
を追加します。go get -u
_を再度実行します。protoc --go_out=../cloud/ *.proto
_を実行します。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
問題を修正することができました。これが誰かに役立つことを願っています。
PATH
変数のproton-gen-go
へのパスが絶対であることを確認してください(つまり、/Users/me/go/bin
ではなく~/go/bin
。
どうやらprotoc
は~
を展開する方法を知りません。
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
コンパイラーは魅力的です。