写在前面,准备环境浪费了半天时间,我搜索了很多人的安装方法,基本都是安装一半就卡主了,没法继续进行了,后来我摸索几个靠谱的,然后组合起来,才安装成功,由于安装过程比较曲折,所以特意写了这个比较详细的流程。
一:安装python3.6
具体不说了,傻瓜安装
二:安装protobuf for python
1,下载protobuf3.5.1
2,.进入 https:///google/protobuf/releases
3,找到 protobuf-python-3.5.1.zip 和 protoc-3.5.1-win32.zip,分别解压,
4,然后将protoc.exe文件放在另一个压缩包解压出来的src文件下,不然安装的时候会报错
5,接下来就可以在CMD中用CD 转到到第一个压缩包的python文件夹内,输入
python setup.py build
没报错的话 继续 输入
python setup.py test
在这里的时候遇到了个报错,提示说明reflection_test.py中哪一行的LONG数据类型有错,由于我们用的是python3,所以要把这个文件里的long改成int才行,(需要搜索下reflection_test.py这个文件)
修改成功, 继续 python setup.py test
这次没错了,就继续 python setup.py install
最后一句是,finished 什么的,就是安装成功了。

三,下面是使用proto的例子
1,建立一个名字为:person.proto的文件,文件里如下
syntax = "proto3";
package example;
message person {
int32 id = 1;
string name = 2;
}
message all_person {
repeated person Per = 1;
}
2,翻译bp,让python可以识别和调用。我的目录结构是这样的

参照我的路径:如下,cmd进入命令行。
先cd进入D:\protobuf\protobuf-3.5.1\src(这是我proto的安装路径),然后执行下面命令。
protoc -I=D:\interface --python_out=D:\interface D:\interface\person.proto
公式如下:
【安装protec.exe的路径】-I=【proto文件所在的文件夹!注意是文件夹路径】 --python_out=【你期待输出的文件路径】【proto文件所在的文件夹+文件名】.proto
注意,等号左右没有空格,路径和路径之间,有空格。
如果执行成功,会在interface的目下,生成一个叫做person_pb2.py的文件。
如果没成功,那你一定前面有地方操作不对。
不用打开这个文件person_pb2.py,这个文件内容可以先不关注。
3,新建一个文件,命名为——personinfo.py,代码如下(这个py文件是来操作上面刚刚生成的person_pb2.py的文件)
import person_pb2
#编辑all_person
pers=person_pb2.all_person()
p1=pers.Per.add()
=1
='lidachao'
p2=pers.Per.add()
=2
='renna'
#对数据进行序列化
data=pers.SerializeToString()
#对已经序列化的数据进行反序列化
target=person_pb2.all_person()
target.ParseFromString(data)
print (target.Per[0].name)
print (target.Per[1].name)四,至此,已经完成了环境的安装(python和protobuf),pb文件的翻译,pb文件的编辑,pb文件的序列化和反序列化,接下来,可以回传参数,assert比较值进行接口测试了
















