Linux下安装protobuf python版本

protobuf简介:Google发明的一种全新的数据交换格式

当前分布式Web系统之间交换数据的所用数据格式的类型中,最常见的依然是json与XML。不过Google的技术大牛们认为json/XML这些文本类型的数据格式传输效率太差,于是他们发明了一种全新的数据格式:https://github.com/google/protobuf

protobuf是一种序列化结构数据(serializing structured data)。数据在保存及传输过程中以二进制编码形态存在,相对于文本格式的数据形式,大大提高了效率。同时,由于protobuf的数据中不携带数据结构定义的信息(Schema以及类似xml中标签名称),又进一步减少了数据里的冗余信息。

据统计,一条消息数据,用protobuf序列化后的数据大小是json的10分之一,xml格式的20分之一,是传统的二进制序列化的10分之一,所以protobuf的性能优势还是很明显的。事实上这种技术早已在Google的服务中大量被应用。另外,Google也将此技术开源化来促进推广。

对于一般的开发者来说,有可能需要用到protobuf的情况:

  • 对接Google的某种服务,例如开发DSP广告系统,需要对接Google的广告RTB交易平台。
  • 在分布式Web系统之间交换数据时,对传输效率有非常高的要求。

官方目前多种编程语言的实现: C++、Java、Python、Objective-C、JavaScript、Ruby、Go。暂时没有PHP版本。

Linux下安装protobuf环境(C++, Python)

前提:需要gcc, gcc-c++, make, build等编译环境

#yum -y install gcc gcc-c++ libstdc++-devel make build
  1. git下载protobuf源代码

    #cd /opt
    #git clone https://github.com/google/protobuf.git
    
  2. 解压,编译,安装

    #cd protobuf
    #./configure
    #make
    #make check
    #make install
    
  3. 继续安装protobuf的python模块(如果不用python,可跳过这一步)

    #cd ./python
    #python setup.py build
    #python setup.py test
    #python setup.py install
    
  4. 安装完成,验证Linux命令

    #protoc –version
    
  5. 验证Python模块是否被正确安装

    #python
    >>>import google.protobuf
    

如果没有报错,说明安装正常。

学习官方的python使用教程:

https://developers.google.com/protocol-buffers/docs/pythontutorial

看懂该文章并能够从头到尾执行样例代码的话,protobuf就算入门了。虽然protobuf内部很复杂,但是Google封装的很不错,留给外部的接口已经很简单了。使用面向对象的编程语言来操作protobuf,其实是非常轻松的一件事情。

Share Comments
comments powered by Disqus