protobuf: .proto 文件不在源目录下
protobuf: .proto file not under source directory
我是 protobuf 的新手。按照官方教程 https://developers.google.com/protocol-buffers/docs/gotutorial,我下载了最新版本并尝试 运行 示例 examples/addressbook.proto
里面addressbook.proto
,有一行
import "google/protobuf/timestamp.proto";
、
因此需要提供一个源目录(-I=
)以便导入它。
我的问题是,在下载的版本中,我在 examples
下有 addressbook.proto
,而需要的 google/protobuf/timestamp.proto
在 src
下
当我做
protoc examples/addressbook.proto --python_out=. -I=src
我收到一个错误
examples/addressbook.proto: File does not reside within any path
specified using --proto_path (or -I)
我尝试使用 --proto_path
并得到了同样的错误。
当我手动将addresbook.proto
移动到src
下时问题就解决了,这样需要的包和.proto都在同一个目录下(由-I=src
指定) .
但是,不知道有没有办法解决.proto文件和其他要导入的包在不同目录下的问题
你需要:
protoc examples/addressbook.proto --python_out=. -I=src -I=examples
当 protoc 在系统范围内安装时,它通常在默认包含路径中包含 timestamp.proto
,并且不必指定 -I
。但是直接从源文件夹构建时它不会自动知道路径。
我是 protobuf 的新手。按照官方教程 https://developers.google.com/protocol-buffers/docs/gotutorial,我下载了最新版本并尝试 运行 示例 examples/addressbook.proto
里面addressbook.proto
,有一行
import "google/protobuf/timestamp.proto";
、
因此需要提供一个源目录(-I=
)以便导入它。
我的问题是,在下载的版本中,我在 examples
下有 addressbook.proto
,而需要的 google/protobuf/timestamp.proto
在 src
当我做
protoc examples/addressbook.proto --python_out=. -I=src
我收到一个错误
examples/addressbook.proto: File does not reside within any path specified using --proto_path (or -I)
我尝试使用 --proto_path
并得到了同样的错误。
当我手动将addresbook.proto
移动到src
下时问题就解决了,这样需要的包和.proto都在同一个目录下(由-I=src
指定) .
但是,不知道有没有办法解决.proto文件和其他要导入的包在不同目录下的问题
你需要:
protoc examples/addressbook.proto --python_out=. -I=src -I=examples
当 protoc 在系统范围内安装时,它通常在默认包含路径中包含 timestamp.proto
,并且不必指定 -I
。但是直接从源文件夹构建时它不会自动知道路径。