0

当我尝试运行 gtfs_realtime_pb2.py(通过谷歌的协议缓冲区运行 gtfs-realtime.proto 生成的 python 代码)时出现以下错误:

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

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

以及安装谷歌协议缓冲区的链接:
https ://developers.google.com/protocol-buffers/

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

4

1 回答 1

0

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

您正在使用的协议缓冲区使用descriptor.proto,因此它所在的目录需要通过--proto_path= 参数包含(请参阅在java 协议缓冲区中导入“google/protobuf/descriptor.proto”)

对于窗口系统,安装目录将是您放置它的位置;对于*nix,它可能是

    /usr/include/descriptor.proto
或者
    /usr/local/include/descriptor.proto

即对于java,你会做类似的事情

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

其中<protobuf-install-directory>是协议缓冲区安装目录。关键是descriptor.proto在

<protobuf-install-directory>\src\google\protobuf
于 2015-01-22T05:17:00.453 回答