【gRPC】protoc文件转py文件

以下基于Win系统下Python的venv虚拟环境演示

  • 《Python3笔记之venv虚拟环境》
  • 《Python笔记之pip国内镜像修改方法》

在桌面创建个test目录作为项目目录,初始化venv环境后,安装基础依赖:

pip install grpcio grpcio-reflection grpcio-tools protobuf googleapis-common-protos

【gRPC】protoc文件转py文件_第1张图片

建立个项目结构:

|- example_proto
   |- core
      |- user.proto
|- proto_output
|- ProtoToPy.bat

准备user.proto文件,例如:

syntax = "proto3"; // proto版本

package core.user;  // 文件夹层级,对应文件名,用.表示层级

message AddUserRequest { // 请求参数
    string username = 1;  // 用户名
    uint32 age = 2;       // 密码
}

message AddUserResponse { // 响应参数
    uint32 uid = 1;   // 用户id
}

// 定义接口服务
service UserService {
    // 提供服务接口
    rpc AddUser(AddUserRequest) returns (AddUserResponse);
}

准备ProtoToPy.bat批处理脚本文件(也可不整),例如:

@echo off

:: 项目目录路径
@set PROJECT_DIR=C:/Users/dev/Desktop/test
:: proto文件所在目录路径
@set PROTOC_DIR=%PROJECT_DIR%/example_proto
:: 转化后的文件存放路径
@set OUTPUT_DIR=%PROJECT_DIR%/proto_output
:: 待转化proto文件(相对PROTOC_DIR)
@set PROTO_NAMES=core/user.proto

@python -m grpc_tools.protoc -I %PROTOC_DIR% --python_out=%OUTPUT_DIR% --grpc_python_out=%OUTPUT_DIR% --pyi_out=%OUTPUT_DIR% %PROTO_NAMES%

完事,在项目目录下执行这个批处理脚本就好了
【gRPC】protoc文件转py文件_第2张图片
此时,我们就可以得到以下PY文件:
【gRPC】protoc文件转py文件_第3张图片

你可能感兴趣的:(Python3,rpc,python)