python 如何使用 protobuf
来源:互联网 发布:全民挂机 源码 编辑:程序博客网 时间:2024/05/18 03:38
一、protobuf是什么
protocol buffer(简称protobuf)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。
二、windows7下载安装protobuf
由于下的Python是3.6.2版本,所以protobuf要下3.0版本的,不然后面运行那个setup.py 有问题,不能安装。
下载地址:http://blog.csdn.net/warrially/article/details/52683611
potoc-3.0.0-win32.zip 包含了一个文件 protoc.exe,编译工具;
protobuf-python-3.0.0.zip 包含了protobuf与语言(python)之间的protobuf运行时库,这个在转换的时候需要用到,相当与protobuf与各语言之间的协定格式。解压放在c盘的根目录下
protoc.exe 放在C:\protobuf-python-3.0.0\protobuf-3.0.0\src和C:\Windows\System32(期间各种问题,这样放就没问题了)
cmd切换到C:\protobuf-python-3.0.0\protobuf-3.0.0\Python目录下,依次执行下列命令
python setup.py build python setup.py test python setup.py install
安装成功三、接着就是编写和转换proto文件:people.proto
syntax = "proto3"; //proto3必须在文件首页加这一句
package tutorial; //包名
message people
{
string name= 1;
int32 height = 2;
}
利用protoc.exe编译proto文件,cmd切换到当前目录,执行以下命令:
protoc -I=. --python_out=./ people.proto
-I=源文件目录,--python_out=编译生成的文件的路径 ,people.proto是要编译的协议文件
编译好之后你就会在目标目录里面看到输出的结果文件,如下:people_pb2.py
然后我们就可以使用生成的python文件了,
1 首先新建一个程序文档,代码如下:pbFirstPeople.py
import people_pb2
pbFirstPeople = people_pb2.people()
pbFirstPeople.name="cheryl"
pbFirstPeople.height=160
print(pbFirstPeople)
注意:python3 的print需要括号,2不需要
2 然后运行这个文件:python pbFirstPeople.py输出如下结果:name: "cheryl"
height: 160
- python 如何使用 protobuf
- python使用protobuf
- python下使用protobuf
- python使用protobuf
- python中使用protobuf
- Java 如何使用protobuf
- Protobuf在Python中的使用
- Protobuf在Python中的使用
- 69.Protobuf进阶——使用Python操作Protobuf
- 如何编译安装protobuf极其python版本
- 如何将protobuf应用至python
- windows环境使用python google protobuf
- 在protobuf中使用python的extension
- protobuf for python 安装与使用
- 在Python 3.4里使用Protobuf 2.6
- protobuf安装使用(python版)
- 使用python通过protobuf实现rpc
- 在python中使用grpc和protobuf
- oracle 日期格式
- js算法--生成随机码
- 元胞数组的换行多次写入文档
- 一个css特效
- HDU1220
- python 如何使用 protobuf
- csu-1216: 异或最大值
- tomcat日志报错Could not find or load main class org.apache.catalina.startup.Bootstrap
- 线程同步:CRITICAL_SECTION, Mutex , Event
- HDU 1176 免费馅饼
- 数据库中截取字符串的简单方法
- this与Thread.currentThread
- 关于双向回呼系统
- HDU 1754(线段树,单点覆盖 询问区间最值)