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