在Windows中使用协议缓冲区
我想在Windows上用Python绑定来使用Google的协议缓冲区(protocol buffer),但是在安装的时候遇到了一些问题。
按照说明,我需要自己用Visual Studio编译PB,但我电脑上没有安装Visual Studio。于是我在下载页面找到了一个Windows的二进制文件。
我还下载了完整的源代码包,然后把protoc-2.5.0-win32.zip\protoc.exe
放到了C:\windows\system32
文件夹里。
接着我去到protobuf-2.5.0.zip\python
文件夹,运行了python setup.py install
来安装Python绑定。
但是我遇到了这样的错误:
然后我检查了一下目录,发现google\protobuf\compiler
这个文件夹不存在。
这是什么问题呢?
有没有可能不编译就能使用它呢?
3 个回答
在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如说,当用户点击一个按钮时,程序就会做出反应。这种情况下,我们通常会使用“事件监听器”。
事件监听器就像一个守门员,它一直在关注某个特定的事件,比如鼠标点击、键盘输入等。当这个事件发生时,守门员就会通知程序去执行相应的代码。
举个例子,假设你有一个按钮,用户点击它后,程序就会显示一条消息。你需要先设置一个事件监听器,让它监控这个按钮的点击事件。一旦用户点击了按钮,事件监听器就会“听到”这个动作,然后执行你预先写好的代码,显示消息。
这样,程序就能根据用户的操作做出反应,让整个应用变得更加互动和友好。
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
}
>>>
在Windows上安装这个软件包之前,你需要先下载一个编译器(叫做protoc.exe),并把它放到环境执行路径里。
完成这个步骤后,你可以运行以下命令:
python setup.py build
python setup.py install
~yy
我之前也遇到过同样的问题。解决办法就是在之前明确地进行构建步骤。
python setup.py build
python setup.py install
这个方法对我有效。