使用 Python 读取 Protocol Buffers 文件

Read Protocol Buffers file using Python

我的目标是解析扩展名为 filename.pb.string 的 Protocol Buffers 文件。在 Mac 上使用 Homebrew 下载了 Protobuff。 运行 protoc --version 并拥有 libprotoc 3.1.0 版本。

但是当我运行 Python 它说找不到模块。我将我的 .pb 文件名更改为 _pb2.py 并在我的 Python 脚本中导入模块。

import filename_pb2 as proto

我正在使用 Google 文档,但仍然没有任何运气。我在通过 Python 编译 Protobuf .so 文件时也遇到了问题。我只是无法同时处理 Protobuf 和 Python link。有人可以指导我吗?

Python错误

import response_123_pb2 as proto
ImportError: No module named response_123_pb2

您必须将 .proto 文件编译为 *_pb2.py 文件:

protoc --python_out=./ YourProto.proto

确保它生成一个名为 YourProto_pb2.py 的文件。然后你可以将它导入到你的代码中:

import YourProto_pb2 as proto

如果编译有其他问题,那就另当别论了。请务必查看此 documentation.