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