在Windows中使用协议缓冲区

时间:2014-04-23 00:47:38

标签: python windows protocol-buffers

我试图在带有python绑定的windows中使用google协议缓冲区,但是我在安装步骤中遇到了一些问题。

按照说明操作,我必须自己使用vs编译PB,但是我的机器上没有安装vs,然后我在download页面找到了一个窗口二进制文件。

我也下载完整的source code package,然后将protoc-2.5.0-win32.zip\protoc.exe添加到C:\windows\system32

然后我转到protobuf-2.5.0.zip\python并运行python setup.py install来安装python绑定。

但是我得到这样的错误: enter image description here

当我检查目录时,文件google\protobuf\compiler不存在。

问题是什么?

是否可以在不编译的情况下使用它?

3 个答案:

答案 0 :(得分:2)

我只是遇到了同样的问题。解决方案是明确地执行构建步骤。

python setup.py build
python setup.py install

这对我有用。

答案 1 :(得分:2)

在Windows上安装此软件包之前,您需要下载编译器(protoc.exe)并将其放在环境执行路径中。

完成此步骤后,您可以运行:

python setup.py build

python setup.py install

〜YY

答案 2 :(得分:0)

C:\Users\dev3\protobufcode\protobuf-master\python
$ python setup.py build
$ python setup.py install

C:\Users\dev3\protobufcode
$ python --version
Python 3.6.5
$ python -i build\gen\addressbook_pb2.py
>>> import addressbook_pb2
>>> Person = addressbook_pb2.Person()
>>> person = addressbook_pb2.Person()
>>> person.id = 1234
>>> person.name = "Go Fish"
>>> person.email = "gofish@example.com"
>>> phone = person.phones.add()
>>> phone.number = "111-2222"
>>> phone.type = addressbook_pb2.Person.HOME
>>> person
name: "Go Fish"
id: 1234
email: "gofish@example.com"
phones {
  number: "111-2222"
  type: HOME
}

>>>