【gRPC】protoc文件转py文件

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

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

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

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

实战pip环境依赖清单

建立个项目结构:

|- 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%

完事,在项目目录下执行这个批处理脚本就好了
在这里插入图片描述
此时,我们就可以得到以下PY文件:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/660694.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

证券开户怎么联系专属客户经理?新手必看!

证券开户联系专属客户经理的方式有很多,可以通过手机网上找客户经理,现在这种方式是最多的,比如咱们网站都是各大券商专业的客户经理,在线联系就可以帮您安排。您自己也可以挑选自己觉得好的券商和客户经理,然后再沟通…

MIMIC-IV官方视图解析 - cardiac_marker心脏标记表

今天在学习官方衍生表mimiciv_derived.cardiac_marker心脏标记表时候发现了一些问题: 该表中troponin_t (肌钙蛋白t)的值结果都是空值null 或者 ___ (由于去标识化), 这明显是不合理的 小编查看了该表的官…

MySQL-运维篇-日志

一、错误日志 二、二进制日志 1、介绍 2、日志格式 3、日志查看 4、日志删除 三、查询日志 四、慢查询日志

汽车软件开发模式的5个特点

汽车软件开发属于较为复杂的系统工程,经常让来自不同知识背景的工程师在观点交锋时出现分歧。在解决复杂性和对齐讨论基准时,可以通过勾勒出讨论对象最关键的几个特征来树立典型概念。本文旨在通过5个典型特点的抽取,来勾勒出汽车软件开发模式…

python实现贪吃蛇小游戏(附源码)

文章目录 导入所需的模块坐标主游戏循环模块得分 贪吃蛇小游戏,那个曾经陪伴着00后和90后度过无数欢笑时光的熟悉身影,仿佛是一把打开时光之门的钥匙。它不仅是游戏世界的经典之一,更是我们童年岁月中不可或缺的一部分,一个承载回…

新媒体与传媒行业数据分析实践:从网络爬虫到文本挖掘的综合应用,以“中国文化“为主题

大家好,我是八块腹肌的小胖, 下面将围绕微博“中国文化”以数据分析、数据处理、建模及可视化等操作 目录 1、数据获取 2、数据处理 3、词频统计及词云展示 4、文本聚类分析 5、文本情感倾向性分析 6、情感倾向演化分析 7、总结 1、数据获取 本…

SwiftUI 动画入门之一:路径动画(Path Animations)

概览 在 SwiftUI 的开发中,我们往往需要使用千姿百态的动画把我们的界面元素妆点的更加鲜活灵动。 如上图所示,我们使用路径动画使折线图更加生动了!这是怎么做到的呢? 在本篇博文中,您将学到以下内容: 概览1. 路径与形状(Path and Shape)2. 路径动画的原理3. 让路径…

Zookeeper服务注册与发现实战

目录 设计思路 Zookeeper注册中心的优缺点 SpringCloudZookeeper实现微服务注册中心 第一步:在父pom文件中指定Spring Cloud版本 第二步:微服务pom文件中引入Spring Cloud Zookeeper注册中心依赖 第三步: 微服务配置文件application.y…

页面切换导致echarts不加载的问题

1. 问题描述 在A页面写了echarts,初始化dom元素加载,显示正常.当切换到B页,再切换回A页面时,echarts加载不出来. f12召唤出来看看报错,没有问题,但是有这样的警告 渲染echarts的dom元素上多了一个" echarts_instance "的属性,这是用来表示唯一性的. 2. 问题解决 …

杂题——试题-算法训练-P0604-runaround数

分析: 题目有三个关键点: 一:结束时,回到起始位置(比较结束时和起始时的下标位置是否相同)二:该整数的所有数字都必须遍历一遍,且只能遍历一遍(把遍历过的数字做个标记&a…

记录下Flybirds移动端ui自动化框架的搭建

一、参考文档 1.官方文档:携程机票跨端跨框架 BDD UI 自动化测试方案Flybirds — flybirds v0.1.5 文档 2.Flybirds运行环境:Flybirds运行环境 - 简书 3.Windows系统连接IOS安装tidevice:iOS自动化之tidevice-CSDN博客 二、Windows系统演…

DNS服务实战:使用自定义域名访问Redis服务

前言 在这篇文章中,你将了解到如何在 CentOS 系统上安装 Redis 服务,并且掌握通过自定义域名来访问 Redis 服务的技巧。通过使用自定义域名,你可以方便地管理和访问你的 Redis 数据库,提高工作效率。无论你是开发者、系统管理员还是对 Redis 感兴趣的读者,这篇文章都会为…

springboot145基于java的在线问卷调查系统的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

亚信安慧的AntDB数据库:稳定可靠的保障

亚信安慧AntDB数据库在运营商自主可控替换项目中的成功应用,具有极其重要的意义。该数据库的落地,不仅为这一项目注入了强大的支持力量,还在更大程度上提升了整体的运营效能。作为一种高效可靠的数据库解决方案,AntDB引入了先进的…

AIPC专题:深耕笔电背光模组领域,AIPC与车载显示拉动公司成长

今天分享的是AIPC系列深度研究报告:《AIPC专题:深耕笔电背光模组领域,AIPC与车载显示拉动公司成长》。 (报告出品方:东兴证券) 报告共计:19页 公司深耕笔电背光模组,主要下游客户为…

缓存相关问题记录解决

缓存相关问题 在这里我不得不说明,我写的博客都是我自己用心写的,我自己用心记录的,我写的很详细,所以会有点冗长,所以如果你能看的下去的化,会有所收获,我不想写那种copy的文章,因为对我来说没什么益处,我写的这篇博客,就是为了记录我缓存的相关问题,还有我自己的感悟,所以如果…

TypeScript(十) Map对象、元组、联合类型、接口

1. Map对象 1.1. 简述 Map对象保存键值对,并且能够记住键的原始插入顺序。   任何值都可以作为一个键或一个值。 1.2. 创建 Map 使用Map类型和new 关键字来创建Map: 如: let myMap new Map([["key1", "value1"],[&…

探索未来发展方向:图片转换为Excel表格的智能化与自动化

随着科技的不断进步,人工智能技术已经在许多领域得到广泛应用。其中,将图片转换为Excel表格的智能化与自动化技术成为了备受关注的新兴领域。这一技术的发展,不仅可以极大地提高工作效率,还能为数据分析提供更为准确和便捷的方式。…

PRBS并行输出

PRBS(Pseudo-Random Binary Sequences)是通过LFSR和特征函数 伪随机数发生器产生的伪随机数序列,通常用于高速数字通信测试。 基本电路(单比特输出) prbs N表示用N比特lfsr尝试伪随机数序列,常用的有N7,9…

创建与删除数据库(四)

创建与删除数据库(四) 一、创建数据库 1.1 使用DDL语句创建数据库 CREATE DATABASE 数据库名 DEFAULT CHARACTER 示例: 创建一个test 的数据库,并查看该数据库,以及该数据库的编码。 创建数据库: cre…