protobuf编译工具使用
1.下载,配置环境变量
下载地址:https://github.com/google/protobuf/releases,选择protoc-xxx-win64.zip下载
把.exe文件的位置加入到Path中
2.建立一个protoc文件test2.protoc
文件位置:最好跟环境变量不在一个盘,不知道什么原因,我环境变量在D盘,protoc文件也在D盘就不认识,放到F盘就可以。
test2.protoc内容:
syntax = "proto2";
message testinfo
{
required int32 devtype = ;
required int32 devid = ;
required int32 unitid = ;
required int32 chlid = ;
optional int32 testid = [default = ];
required bytes stepdata = ;
}
在文件路径输入cmd,回车,进入命令窗口
执行命令:
#第一个是protoc文件的路径,第二个是编译文件的路径 #protoc -I=源地址 --java_out=目标地址 xxx.proto
protoc -I=F:\protocbuf_test --java_out=F:\protocbuf_test test2.proto #此处生成python文件
protoc --python_out=./ test2.proto #默认生成.java文件
protoc -I=F:\protocbuf_test --java_out=F:\protocbuf_test test2.proto
3.在目录下新建文件 test.py,写入代码
import test2_pb2 testinfo = test2_pb2.testinfo()
testinfo.devtype = 100
testinfo.devid = 2
testinfo.unitid = 3
testinfo.chlid = 4
testinfo.testid = 250
testinfo.stepdata = b'abd' print(testinfo, testinfo.devtype) # 打印 protobuf 结构的内容
out = testinfo.SerializeToString()
print(out) # 打印 Protobuf 序列字符串 decode = test2_pb2.testinfo()
decode.ParseFromString(out) print(decode) # 打印 解析Protobuf后的内容
运行python代码,报错:
因为测试,使用的是系统默认的临时python环境,没有安装相关模块,需要安装一下 :
pip install protobuf
pip install google
再执行:
python test.py
出现下面情况,表示成功:
参考:
https://www.cnblogs.com/luyanjie/p/10403869.html
https://blog.csdn.net/liupeifeng3514/article/details/78985575
https://stackoverflow.com/questions/38680593/importerror-no-module-named-google-protobuf
protobuf编译工具使用的更多相关文章
- protobuf编译出错的解决方案(iOS,OSX)
protobuf 最近使用protobuf,变编译工具时遇上一点问题.现在附上解决方案 编译过程 完全参照 https://github.com/alexeyxo/protobuf-objc 编译出错 ...
- 工欲善其事,必先利其器 软件工具开发关键词 protractor自动化测试工具 RegexBuddy正则 CodeSmith,LightSwitch:代码生成 CheatEngine:玩游戏修改内存值必备神器 ApkIDE:Android反编译工具 Reflector:反编译dll动态链接库
工欲善其事,必先利其器 本文版权归翟士丹(Stan Zhai)和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利. 原文地址:http ...
- protoc 编译工具
在进行开发 protoc 之前,你需要首先在你的计算机中安装 protoc 编译工具. 下载编译工具 进入 Protocol Buffers 的源代码中然后选择发布的版本中,找到对应的版本.项目的链接 ...
- koala预编译工具的使用
Koala是一个开源的预处理语言图形编译工具,目前已支持Less.Sass.Compass与CoffeeScript. 安装Koala 在Koala官网根据你的系统平台下载对应的版本.Linux系统要 ...
- apk反编译工具
反编译工具: apktool:资源文件获取,可以提取出图片文件和布局文件进行使用查看 dex2jar:将apk反编译成Java源码(classes.dex转化成jar文件) jd-gui:查看APK中 ...
- less及编译工具介绍
什么是LESSCSS LESSCSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法,为CSS的赋予了动态语言的特性,如变量.继承.运算.函数等,更方便CSS的编写和维护. LE ...
- eclipse安装反编译工具
身为一名程序员来说,日常最常做的就是编写代码和查看别人写好的源代码了,有时候打开别人写的class文件发现根本不是自己想要的,所以给大家介绍一种eclipse中反编译class文件的工具. 第一步:下 ...
- Koala – 开源的前端预处理器语言图形编译工具
koala 是一个前端预处理器语言图形编译工具,支持 Less.Sass.Compass.CoffeeScript,帮助 Web 开发者更高效地使用它们进行开发.跨平台运行,完美兼容 Windows. ...
- .net混淆、反编译工具调查
常用的工具列表[比较常见的] 混淆器.加密 Dotfuscator VS默认带的工具,不过是个社区版 强度不大 dotNET Reactor 使用了NativeCode 和混淆的形式 Xenocode ...
随机推荐
- Python写一个简单的爬虫
code #!/usr/bin/env python # -*- coding: utf-8 -*- import requests from lxml import etree class Main ...
- 理解依赖注入(DI - Dependency Injection)
系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of Contro ...
- linux 批量kill php进程
一.执行以下命令 ps -ef|grep php|grep -v grep|cut -c 9-15|xargs kill -9 管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右 ...
- Spring Boot2(002):手动创建第1个SpringBoot2简单应用——“HelloWorld” web 工程
备注:以下内容参考 springboot 官方文档 https://docs.spring.io/spring-boot/docs/2.1.5.RELEASE/reference/pdf/spring ...
- Python中的常用内置对象之range对象
range(start, stop[, step]) 可生成满足条件的数.具体来说是返回一个从start开始到小于stop的相邻数的差step的等差数列列表.结果中包含start一直到小于stop的 ...
- 对DataFrame的再理解
1.构造需要从字典构造 cds={'code':["002372.XSHE","002415.XSHE","002304.XSHE",&qu ...
- java类加载及new对象的过程
/* SubClass sub = new SubClass(); 这句话到底做了什么事情呢? 1.javac编译.java源文件形成.class字节码文件; 2.new SubClass()对象时, ...
- Linux - 安装 dotnet core 环境
Linux - 安装 dotnet core 环境 系统环境:CentOS7 官方安装指导 https://www.microsoft.com/net/learn/get-started/linux ...
- CSS position定位属性
css中的position属性是用于设置元素位置的定位方式 它有以下几种取值: static:默认定位方式,子容器在父容器中按照默认顺序进行摆放 absolute:绝对定位,元素不占据父容器空间,相当 ...
- SQL常用短语小记-持续更新
创建链接服务器语句 --//创建链接服务器[在本地服务器创建] exec sp_addlinkedserver '链接服务器名称','','SQLOLEDB','远程服务器地址' -- exec sp ...