"/> ">

ホームページ >バックエンド開発 >Golang >go grpc: github.com/golang/protobuf/proto をインポートできません (必要なモジュールがパッケージ 'github.com/golang/protobuf/proto' を提供していません)

go grpc: github.com/golang/protobuf/proto をインポートできません (必要なモジュールがパッケージ 'github.com/golang/protobuf/proto' を提供していません)

王林
王林転載
2024-02-09 09:00:111216ブラウズ

go grpc:无法导入github.com/golang/protobuf/proto(没有必需的模块提供包“github.com/golang/protobuf/proto”)

php エディタ Zimo は、go grpc の使用中にエラーが発生し、「github.com/golang/protobuf/proto」モジュールをインポートできないというメッセージが表示されました。このエラーは通常、必要なモジュールが欠落していることが原因で発生します。 go grpc を使用する前に、protobuf ライブラリが正しくインストールされていること、および関連する proto パッケージがコードに正しくインポートされていることを確認する必要があります。次に、この問題を解決する方法を詳しく紹介します。

質問内容

「protoc --proto_path=proto proto/*.proto --go_out=plugins」の場合、protoファイルは「github.com/golang/protobuf/proto」をインポートしています"google.golang.org/protobuf/proto" =grpc:pb"command

の代わりに

ファイルのインポート

リーリー

私のプロトタイプ ファイル

リーリー

~go/bin/protoc-gen-go-grpc のバージョンは

リーリー

私が何をしたのか

初期インストール

$ google.golang.org/protobuf/cmd/[email protected]

をインストールしてください

$ google.golang.org/grpc/cmd/[email protected]

をインストールしてください

新しいパッケージをインストールする前に go clean -modcache と入力し、コメント @latest

を使用して最新バージョンを再インストールします。

go version: Ubuntu 20.4 go1.21.1 linux/amd64

の go バージョン

プロトコル--バージョン libprotoc 3.6.1

apt を使用して protobuf-compiler と golang-goprotobuf をインストールする

リーリー

問題はここにあると思いますが、何を修正すればよいのか、これをどのように読めばよいのかわかりません

リーリー

編集: 最初は go get -u github.com/golang/protobuf/proto を使用してインストールしたと思いますが、rm -rf $(go env GOPATH)/pkg/mod/github.com/golang binaries を使用して削除しました/protobuf/proto を実行し、 go install google.golang.org/protobuf/cmd/protoc-gen-go@latest を使用して新しいバージョンをインストールし、 go install google.golang.org/grpc/cmd/protoc-gen-go- grpc@ を実行します。最新。まだ古いインポートを使用して go ファイルを生成します

Edit2: protoc-gen-go --version が見つかりませんが、protoc-gen-go-grpc --version は 1.2.0 です。 protoc -- バージョンは libprotoc 3.6.1 です。 ここでプロトコル-gen-goは protoc-gen-go:/usr/bin/protoc-gen-go /home/hp/go/bin/protoc-gen-go /usr/share/man/man1/protoc-gen-go.1.gz p>

解決策

Ashttps://www.php.cn/link/a5481cd6d7517aa3fc6476dc7d9019ab 著者: @puellanivis

Linux 環境の $PATH 変数は、/home/{username}/go/bin で始まり、その後 /usr/bin と順番に続く必要があります。始まり。これは、/usr/bin/protoc-gen-go の前に google.golang.org/gprc/cmd/protoc-gen-go-grpc@latest を見つける必要があるためです。

~/.bashrc または ~/.bash_profile ファイル ($vim ~/.bashrc) を編集し、パス環境全体を手動でエクスポートします。私の場合は

を追加する必要がありました リーリー

以上がgo grpc: github.com/golang/protobuf/proto をインポートできません (必要なモジュールがパッケージ 'github.com/golang/protobuf/proto' を提供していません)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。