如何在windows上使用Python的协议缓冲区?

如何在windows上使用Python的协议缓冲区?,python,protocol-buffers,protoc,Python,Protocol Buffers,Protoc,我一直试图在Python程序中使用协议缓冲区,但无法使其正常工作。我正在运行一台Windows8机器,并尝试了Python 2.7.6和Python 3.3。 我下载了Python二进制协议缓冲区编译器,并使用它从我的myProto.proto文件中生成myProto_pb2.py,但当我运行Python程序时出现以下错误时: 在“import myProto_pb2”行中,当从协议缓冲区版本2.5使用Python 2.7.6时,我得到以下错误: from google.protobuf imp

我一直试图在Python程序中使用协议缓冲区,但无法使其正常工作。我正在运行一台Windows8机器,并尝试了Python 2.7.6和Python 3.3。 我下载了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正确安装和运行协议缓冲区

如何在Windows上从Python正确安装和运行协议缓冲区

与任何其他软件包一样,如果希望安装它,您必须实际安装它。如果您只是尝试运行位于源目录中的包,它可能会工作,但大多数包不是这样工作的;您往往会遇到类似于顶级包
import
ing的情况,然后当它尝试
import
其他内容时,会失败几行……正如您所看到的那样

我相信谷歌代码的主要下载包中有一个可安装的包。如果不是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之外安装它,那么它也是可用的。因此,假设:


检查此项

谢谢!它似乎起作用了。。。出于某种原因,我可以从Cygwin这样的命令提示符运行Python程序,但从默认的空闲编辑器启动它时,仍然会出现导入错误。@user239973:我猜您实际上安装了两个Python安装,可能是Cygwin Python和一个本机win32 Python。您已经将protobuf正确地安装到cygwin-Python中,因此当您在命令行运行cygwin-Python时它可以工作,但是您还没有将它安装到本机Python中,因此当您运行本机Python的空闲时它就不工作了。但实际上,这只是一个猜测。发布一个新问题,描述您的设置,显示实际的错误消息(如果有回溯),而不仅仅是描述它,等等。
pip install protobuf