当我尝试运行gtfs_realtime_pb2.py(通过google协议缓冲区运行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
安装google协议缓冲区的链接:
https://developers.google.com/protocol-buffers/
我很确定我已经正确安装了缓冲区,为什么它无法找到这个模块呢?
答案 0 :(得分:0)
协议缓冲区中包含 descriptor.proto ;这个proto的python代码应该作为安装过程的一部分生成。
您正在使用的协议缓冲区使用descriptor.proto,因此需要通过--proto_path =参数包含它所在的目录(请参阅Importing "google/protobuf/descriptor.proto" in java protocol buffers
对于窗口系统,安装目录将放在您放置的位置;对于* 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
其中&lt; protobuf-install-directory&gt; 是协议缓冲区安装目录。关键点是descriptor.proto在
中<protobuf-install-directory>\src\google\protobuf