使用从 google 协议缓冲区生成的 python 代码时遇到问题

Having problems using the python code generated from the google protocol buffer

当我尝试 运行 gtfs_realtime_pb2.py(从 运行 将 gtfs-realtime.proto 生成的 python 代码通过google 的协议缓冲区):

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    from google.protobuf import descriptor
ImportError: No module named 'google'

这是我遇到问题的特定代码的 link: https://github.com/mattwigway/gtfsrdb

然后 link 安装 google 的协议缓冲区:
https://developers.google.com/protocol-buffers/

我很确定我已经正确安装了缓冲区,那么为什么它会抛出找不到这个模块的问题?

包含在协议缓冲区中的是descriptor.proto; python 此原型的代码应该作为安装过程的一部分生成。

您正在使用的协议缓冲区使用 descriptor.proto,因此需要通过 --proto_path= 参数包含它所在的目录(参见 Importing "google/protobuf/descriptor.proto" in java protocol buffers

对于 window 系统,安装目录将是您放置它的位置;对于 *nix,它可能是 answer taken from

    /usr/include/descriptor.proto 
or 
    /usr/local/include/descriptor.proto 

即对于 java 你会做类似

protoc addressbookSD.proto --java_out=./ --proto_path=./ --proto_path=<protobuf-install-directory>/src

其中 是协议缓冲区安装目录。重点是descriptor.proto在

<protobuf-install-directory>\src\google\protobuf