10

我一直在尝试在我的 Python 程序中使用协议缓冲区,但无法让它工作。我正在运行 Windows 8 机器并尝试过 Python 2.7.6 和 Python 3.3。我下载了 Python 的二进制协议缓冲区编译器并使用它myProto_pb2.py从我的myProto.proto文件中生成,但是当我运行我的 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 正确安装和运行协议缓冲区?

4

2 回答 2

11

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

像任何其他软件包一样,如果您想安装它,您必须实际安装它。如果您只是尝试使用位于源目录中的包来运行,它可能会工作,但大多数包都不是这样工作的;您往往会得到诸如顶级包装之类的东西import,然后当它尝试import其他东西时失败了几行……就像您所看到的那样。

我相信 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,那么那里也可以使用它。所以,假设你已经pip安装

pip install protobuf
于 2014-01-17T22:01:00.863 回答
0

检查这个python protobuf 为 windows 安装

于 2021-01-22T15:47:22.993 回答