使用从 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
当我尝试 运行 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
其中
<protobuf-install-directory>\src\google\protobuf