いるProtobufコンパイルツール

 

1.ダウンロードし、環境変数を設定します

ダウンロード:https://github.com/google/protobuf/releases、protoc-xxx-win64.zipダウンロードを選択

 

.exeファイルの場所は、パスに追加されます

 

2. protocファイルtest2.protocの確立

ファイルの場所:最高の環境変数が一品ではないと、DドライブにI環境変数は、protoc文書はまた、Dドライブを認識していない理由を、あなたはFドライブを置くことができ、知りません。

test2.protocコンテンツ:

構文= proto2 
メッセージtestinfo 
{ 
INT32 DEVTYPE必要 = 1 
必要INT32 DEVID = 2 
必要INT32 UNITID = 3 
必要INT32 chlid = 4 
任意INT32テストID = 5 [デフォルト= 0 ]。
必要なバイトstepdata = 6 
}

 

ファイルパス入力CMDには、コマンドウィンドウに入力します。

 

 

 コマンドを実行します。

#第1経路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

 

おすすめ

転載: www.cnblogs.com/sybil-hxl/p/12169366.html