以下基于Win系统下Python的venv虚拟环境演示
- 《Python3笔记之venv虚拟环境》
- 《Python笔记之pip国内镜像修改方法》
在桌面创建个test
目录作为项目目录,初始化venv
环境后,安装基础依赖:
pip install grpcio grpcio-reflection grpcio-tools protobuf googleapis-common-protos
建立个项目结构:
|- 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%