mac下安装protocol buffer并用python解析

  由于业务需要,项目中需要用到google的一种高效的可扩展的结构化数据存储方式protocol buffer(以下简称pb)。很多人可能对这个新东西不熟悉,大家都知道xml,json,确很少听过pb,下面我就粗劣总结一下pb在mac环境下的搭建以及用python解析的简单过程。

  首先下载最新pb源码,放到相应的文件夹解压。

  安装步骤如下(强调一下:如安装不成功,就以管理员身份安装即在每句命令前加上sudo):

  这句如果解压完了就不需要了tar -xzf protobuf-2.1.0.tar.gz

  cd protobuf-2.1.0 ./configure --prefix=$INSTALL_DIR(要安装的目录,以管理员身份安装可以省去,系统会默认一个位置) make make check make install

  如果一切顺利的话,可以用下面语句检测:

  protoc --version (会输出版本号,如果提升command not found,那就那烦你重新安装,记着以管理员身份运行)

  这些做完之后,我们可以简单的了解一下pb了:

  首先我们需要编写一个 proto 文件,定义我们程序中需要处理的结构化数据,在 protobuf 的术语中,结构化数据被称为 Message。proto 文件非常类似 java 或者 C 语言的数据定义。代码清单 1 显示了例子应用中的 proto 文件内容。 清单 1. proto 文件


  package lm; message Person { required int32 id = 1; // ID required string str = 2; // str optional int32 opt = 3; //optional field }

  一个比较好的习惯是认真对待 proto 文件的文件名。比如将命名规则定于如下:


  packageName.MessageName.proto

在上例中,package 名字叫做 lm,定义了一个消息 helloworld,该消息有三个成员,类型为 int32 的 id,另一个为类型为 string 的成员 str。opt 是一个可选的成员,即消息中可以不包含该成员。

  接下来我们编译这个proto文件试试,看能不能成功:

  假设您的 proto 文件存放在 $SRC_DIR 下面,您也想把生成的文件放在同一个目录下,则可以使用如下命令:


  protoc -I=$SRC_DIR --python_out=$DST_DIR $SRC_DIR/a.proto

  如果你地址写对了,并且文件名不以数字等非法字符开头的话,你应该正在乐着了。你应该在你的

  $DST_DIR目录下看到多了一个文件,a_pb2.py,打开看看,其中有一部分你应该没有问题吧,

  至少你上面写的pb中的那几个属性能找到吧,还有class,不说了,注意,下面才是关键:

  编译完之后怎么用了,要是不会用,那上面不就白干了吗?

  我们自定义一个text.py文件,代码如下:

  import a_pb2

  p = a_pb2.Person()

  #print p.__doc__

  p.name = "gtts" # name应该很熟悉了吧

  print p.name

  运行这段代码,悲剧的是报错了:No module named google.protobuf

  怎么解决了,好像我们缺少东西,解决方法如下:

  执行 python setup.py install进行安装,一般可能需要如“setuptools-0.6c11-py2.6.egg”的文件,将其拷贝到上述python目录,

  确认安装好的命令为sudo python ./setup.py test (别忘了sudo,不然你成功不了的)

  如果配置成功的话,提示如下:

  ---------------------------------------------------

  ............省略很多字...........

  Ran 193 tests in 0.520s

  OK

  ----------------------------------------------------

  好了,庆贺吧!

时间: 2024-08-04 23:12:37

mac下安装protocol buffer并用python解析的相关文章

Protocol Buffer 序列化原理解析 - 为什么Protocol Buffer性能这么好?

前言 习惯用 Json.XML 数据存储格式的你们,相信大多都没听过Protocol Buffer Protocol Buffer 其实 是 Google出品的一种轻量 & 高效的结构化数据存储格式,性能比 Json.XML 真的强!太!多! 由于 Google出品,我相信Protocol Buffer已经具备足够的吸引力 今天,我将讲解为什么Protocol Buffer的性能如此的好: a. 序列化速度 & 反序列化速度快 b. 数据压缩效果好,即序列化后的数据量体积小 阅读本文前请先

在mac下安装了MySqL + MySQLWorkbench + PyCharm

今天在mac下安装了MySqL  +   MySQLWorkbench + PyCharm 安装这些东西没有在windows下熟悉. 在Mac下安装程序真的不是很适应,感觉很不爽!!!安装完成后还是蛮高兴,后面可以做自己要做的事情了. 通过查阅各种各样的资料,去安装这些东东.最后经过一番周折终于安装完成.下面是对安装过程和遇到的问题做个简单记录. 一.下载MySQL和MySQL Workbench http://dev.mysql.com/downloads/mysql/ 选择合适自己Mac 版

手把手教你如何安装Protocol Buffer

前言 习惯用 Json.XML 数据存储格式的你们,相信大多都没听过Protocol Buffer Protocol Buffer 其实 是 Google出品的一种轻量 & 高效的结构化数据存储格式,性能比 Json.XML 真的强!太!多! 由于 Google出品,我相信Protocol Buffer已经具备足够的吸引力 今天,我主要讲解如何安装 Protocol Buffer,希望你们会喜欢. 目录 1. 定义 一种 结构化数据 的数据存储格式(类似于 `XML.Json` ) Google

Mac下安装SQLmap的安装

1.cd /usr/bin/ 2.sudo git clone https://github.com/sqlmapproject/sqlmap.git sqlmap-dev3.重新打开terminal输入此信息后,回车即可. alias sqlmap=‘Python /usr/bin/sqlmap-dev/sqlmap.py‘ 但是执行第二条命令的时候,wtf,报错了 你可能会遇到以下错误: 1.MAC OS下错误提示xcrun: error: invalid active developer

Mac下安装MySQL 5.6.40

Mac下安装MySQL 5.6.40 - 干勾鱼的CSDN博客 - CSDN博客 原创 Mac下安装MySQL 5.6.40 2018-06-18 10:34:03 我是干勾鱼 阅读数 5927 分类专栏: MYSQL MYSQL常见问题解析 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/dongdong9223/article/details/80722654 转载请注明出处:http

Mac下安装lightgbm

Mac下安装lightgbm 1.安装环境 系统 MacOS Mojave 版本10.14.2 Xcode 10.1 $ clang -v Apple LLVM version 10.0.0 (clang-1000.11.45.5) Target: x86_64-apple-darwin18.2.0 Thread model: posix 2.安装错误 直接使用命令: import lightgbm as lgb 使用时直接调用: import lightgbm as lgb import li

linux 下安装 mysql 并配置 python 开发环境

1.安装 mysql ,安装过程中将提示设置 root 用户的密码,默认可以设置为 rootadmin . $ sudo apt-get install mysql-server 2.安装 mysql 开发工具(不安装时,安装 MySQL-python 提示错误 "mysql_config not found"). $ sudo apt-get install libmysqld-dev 3.安装 python 的 mysql 库 MySQL-python (首先安装 python-d

mac下安装mongoDB

方式一:命令行 MongoDB的安装有好多种安装方法,有普通青年的HomeBrew方式,也有文艺青年的源码编译方式.我只想快速的装起来用一下,所以我选最简单的HomeBrew. 请参考官方文档 : http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/ 更新Homebrew的package数据库,在Mac的终端中输入: $ brew update 然后耐心等待,这个没有任何显示,估计要几分钟,取决于网络的速度.然后就列出了

mac下安装配置java开发环境

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Helvetica; color: #000000 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Helvetica; color: #000000; min-height: 13.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #