我一直在尝试在我的
Python程序中使用协议缓冲区,但无法使其工作.我正在运行Windows 8机器,并尝试过Python 2.7.6和Python 3.3.
我下载了Python的二进制协议缓冲编译器并用它从我的myProto.proto文件生成myProto_pb2.py,但是当我运行我的Python程序时出现以下错误:
我下载了Python的二进制协议缓冲编译器并用它从我的myProto.proto文件生成myProto_pb2.py,但是当我运行我的Python程序时出现以下错误:
从“import myProto_pb2”行,从协议缓冲区版本2.5使用Python 2.7.6时出现以下错误:
from google.protobuf import descriptor as _descriptor ImportError: No module named google.protobuf
如何在Windows上从Python正确安装和运行协议缓冲区?
How can I correctly install and run protocol buffers from Python on Windows?
与任何其他软件包一样,如果要安装它,则必须实际安装它.如果您只是尝试使用位于源目录中的软件包运行,它可能会起作用,但大多数软件包都不能以这种方式工作;你倾向于得到像顶层包导入的东西,然后当它尝试导入其他东西时失败几行……正如你所看到的那样.
我相信GoogleCode的主要下载包中有一个可安装的软件包.至少它适用于源包,如果不是win32包. python目录中有完整的安装说明.基本上:
C:\path\to\protobuf-2.5.0> cd python C:\path\to\protobuf-2.5.0\python> python setup.py build C:\path\to\protobuf-2.5.0\python> python setup.py test C:\path\to\protobuf-2.5.0\python> python setup.py install
但是如果win32预构建的软件包没有附带,或者你不再使用它,或者你只是想安装PyPI,它也可用there.所以,假设you’ve got pip
installed:
pip install protobuf