protobuf-python windows安装
Windows下安装protobuf
简单介绍:
Protocol Buffers - Google's data interchange format
===================================================
Copyright 2008 Google Inc.
https://developers.google.com/protocol-buffers/
Overview
--------
Protocol Buffers (a.k.a., protobuf) are Google's language-neutral,
platform-neutral, extensible mechanism for serializing structured data. You
can find [protobuf's documentation on the Google Developers site](https://developers.google.com/protocol-buffers/).
- 首先要有windows运行环境
其中 protoc-3.17.3-win64 是需要的编译器 :protoc.exe 配置一下 让其可执行 - 安装python库
python setup.py build
python setup.py test
python setup.py install
snap如下
pip 直接安装
pip install grpcio
pip install grpcio-tools
简单实践
demo proto
say_hi.proto
syntax = "proto2";
package hello_word;
message SayHi {
required int32 id = 1;
required string something = 2;
optional string extra_info = 3;
}
执行命令:
protoc -I . --python_out=. say_hi.proto
生成文件:
say_hi_pb2.py
进行功能测试:
test.py
# -*- coding: utf-8 -*-
import say_hi_pb2
po = say_hi_pb2.SayHi()
po.id = 123
po.something = 'do_something'
po.extra_info = 'extra info'
print(po, po.id) # 打印 protobuf 结构的内容
out = po.SerializeToString()
print(out) # 打印 Protobuf 序列字符串
decode = say_hi_pb2.SayHi()
decode.ParseFromString(out)
print (decode.id)
print (decode.something)
print (decode.extra_info)
print(decode) # 打印 解析Protobuf后的内容
输出结果:
总结
protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。你可以定义数据的结构,然后使用特殊生成的源代码轻松的在各种数据流中使用各种语言进行编写和读取结构数据。你甚至可以更新数据结构,而不破坏由旧数据结构编译的已部署程序。