我对python和protocol buffer非常陌生,我们遇到过一个场景,需要把指标推送到mimir(prometheus),我下载并编译了proto definition(https://github.com/grafana/mimir/blob/main/pkg/mimirpb/mimir.proto),里面有一行代码:
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
编译proto并生成mimir_pb2包后,导入它会抛出ModuleNotFound错误:
python3
>>> import mimir_pb2
>>> ModuleNotFoundError: from github.com.gogo.protobuf.gogoproto import gogo_pb2 as github_dot_com_dot_gogo_dot_protobuf_dot_gogoproto_dot_gogo__pb2
ModuleNotFoundError, Module github not found.
编译mimir.protoc时在mimir_pb2中生成了以下行:from github.com.gogo.protobuf.gogoproto import gogo_pb2 as github_dot_com_dot_gogo_dot_protobuf_dot_gogoproto_dot_gogo__pb2
以前有人遇到过这个错误吗?我不知道github.com.gogo.protobuf.gogoproto是什么/在哪里,以及如何解决这个问题。
1条答案
按热度按时间chhqkbe11#
我发现了问题。我还必须下载gogo.proto文件并编译它。这创建了gogo_pb2,我在原始类中引用了它。
Python protobuf gRPC generates a dependency that doesn't exist