我想使用Python中googleapis/api-common-protos处已经定义的原型文件。例如
syntax = "proto3";
package com.example.service.rev0;
import "google/protobuf/any.proto";
import "google/rpc/code.proto";
message GenericExcInfo {
google.rpc.Code status_code = 1;
string name = 2;
string message = 3;
repeated string stack_trace_entries = 4;
string code_filename = 5;
int32 code_lineno = 6;
string code_name = 7;
google.protobuf.Any arbitrary_info = 16;
}
如果安装了python软件包googleapis-common-protos,则相关的python模块(在这种情况下为google.rpc.code_pb2.Code
)可用。但是由于未安装任何原始文件,因此出现以下错误。
$ protoc --proto_path=. --python_out=. exc_info.proto
google/rpc/code.proto: File not found.
exc_info.proto: Import "google/rpc/code.proto" was not found or had errors.
exc_info.proto:14:5: "google.rpc.Code" is not defined.
如何在Python中使用这些Google Proto文件?编译时我是否必须git clone
进行回购并包含所有原始文件?
答案 0 :(得分:0)
已解决。我必须克隆它。
https://github.com/googleapis/api-common-protos#using-these-protos
如果您使用协议(或其他类似工具)来编译这些文件 自我证明,您可能需要本地副本。克隆这个 存储库到一个方便的位置,并使用--proto_path指定 在计算机上,此存储库的根目录为编译器。