protobuf:.proto文件不在源目录下

时间:2017-12-18 02:50:40

标签: protocol-buffers

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

addressbook.proto内,有一条线 import "google/protobuf/timestamp.proto";

所以需要提供一个源目录(-I=)以便导入它。

我的问题是,在下载的版本中,addressbook.proto位于examples下,google/protobuf/timestamp.proto位于src

当我这样做时

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

我收到错误

  

examples / addressbook.proto:文件不在任何路径中   使用--proto_path(或-I)指定

我尝试使用--proto_path并遇到同样的错误。

当我手动移动addresbook.proto下的src时,问题就解决了,因此所需的包和.proto都在同一目录下(由-I=src指定)。

但是,我想知道当 .proto 文件和其他待导入软件包位于不同目录下时是否存在解决方案。

1 个答案:

答案 0 :(得分:1)

你需要:

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

在系统范围内安装protoc时,默认包含路径中的timestamp.proto通常为-I,并且不必指定{{1}}。但是,当直接从源文件夹构建时,它不会自动知道路径。