"/> ">

>백엔드 개발 >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:111222검색

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 파일은 "google.golang.org" 대신 "github.com/golang/protobuf/proto"를 가져옵니다. " /protobuf/proto” =grpc:pb” 명령

파일 가져오기

으아악

내 프로토타입 파일

으아악

~go/bin/protoc-gen-go-grpc 버전이 있습니다

으아악

내가 무슨 짓을 한 걸까

초기 설치

$ google.golang.org/protobuf/cmd/[이메일 보호됨]

설치하러 가기

$ google.golang.org/grpc/cmd/[이메일 보호됨]

설치하러 가기

새 패키지를 설치하기 전에 go clean -modcache를 입력하고 @latest 댓글을 사용하여 최신 버전을 다시 설치하세요.

go 버전: Ubuntu 20.4의 go 버전 go1.21.1 linux/amd64

프로토콜--버전 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 file/을 사용하여 바이너리를 제거했습니다. 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입니다. 프로토콜 생성은 어디에 있습니까? 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>

해결책

https://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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제