当前位置: 首页 > 知识库问答 >
问题:

协议:。proto文件不在源目录下

韩自怡
2023-03-14

我是protobuf的新手。遵循官方教程https://developers.google.com/protocol-buffers/docs/gotutorial,我下载了最新版本,并尝试运行示例examples/addressbook。协议

addressbook.proto里面,有一行导入"google/原型/timestamp.proto";

因此,需要提供一个源目录(-I=)才能导入它。

我的问题是,在下载的版本中,我有addressbook.proto示例下,而需要的google/probuf/timestamp.protosrc

当我这样做的时候

原型示例/addressbook.proto--python_out=.-I=src

我得到一个错误

示例/地址簿。proto:文件不在使用--proto\u path(或-I)指定的任何路径中

我试着使用proto\u路径,但得到了相同的错误。

当我手动移动addresbook时,问题就解决了。proto下的src,以便所需的包和。proto和proto位于同一目录下(由-I=src指定)。

然而,我想知道,如果有一个解决方案时。proto文件和其他要导入的包位于不同的目录下。

共有1个答案

况胡媚
2023-03-14

您需要:

protoc examples/addressbook.proto --python_out=. -I=src -I=examples

当protoc在系统范围内安装时,它通常具有时间戳。proto在默认的include path中,不必指定-I。但当直接从源文件夹构建时,它不会自动知道路径。

 类似资料:
  • 我正在得到。在下面的命令中找不到proto File错误 输出:以下错误是protoc失败。 Edit1:下面是test1.proto文件。这里第7行有validator.proto导入

  • 问题内容: 我正在尝试动态解析Java中的给定.proto文件,以解码Protobuf编码的二进制文件。 我有以下解析方法,其中“ proto”字符串包含.proto文件的内容: 但是,执行时,先前的方法将引发消息“协议消息标签的电线类型无效”的异常。我使用了来自Google的示例.proto文件,因此我认为它是有效的:https : //github.com/google/protobuf/bl

  • 在编写时。gRPC的原型文件我注意到我可以。 1)在一个. proto文件中包含我的所有消息(请求和响应)以及所有rpc。 2) 在各自的rpc中写入每个rpc。原型文件。 我可以看到,当我有两个访问相同消息的RPC时,在同一个文件中写入协议缓冲区会更方便。然而,我更愿意在可能的情况下将它们分开,以采用更模块化的方法。 我的问题是,忽略偏好这两种方法之间是否有效率差异?此外,如有任何关于本公约的信

  • 我知道协议缓冲区是一种序列化格式,需要中的消息格式。proto,以便正确读回。但我有一个文件,我不知道正确的消息格式,因为它没有发布。我想做的是自己对数据进行反向工程,这样我就可以重建消息。为此,我需要读取原始文件,从中可以提取字段编号、类型和值。 有没有一个程序可以做到这一点(最好是在python中,但C/C也很酷)?

  • 我正在使用模拟开放框架架构SOFA(语言),我的目标是在一些沙发源本机数据与其他外部应用程序之间设置一些通信类型。按照这个顺序,我使用ZeroMQ将沙发数据传输到python外部应用程序。 在SOFA( 文件,以下字段:,,? 目前,文档中不清楚如何定义与向量和其他数据类型相关的字段,如SOFA原生的(四元数)。 Vec3d和Quat由以下元素组成: 是否可以定义为枚举数? 更新 目前,我的暂定仪

  • 是否有可能解析传入的google协议缓冲区数据报而不使用任何缓冲区。原始文件?我只是现在使用协议缓冲区对其进行了序列化,但不知道IDL文件。 我在寻找一种通过某种反射来迭代任何值的方法?这可能吗? 非常感谢。