对python调用RPC接口的实例详解
作者:天枢 发布时间:2022-12-30 00:09:20
标签:python,RPC,接口
要调用RPC接口,python提供了一个框架grpc,这是google开源的
rpc相关文档:
https://grpc.io/docs/tutorials/basic/python.html
需要安装的python包如下:
1.grpc安装
pip install grpcio
2.grpc的python protobuf相关的编译工具
pip install grpcio-tools
3.protobuf相关python依赖库
pip install protobuf
4.一些常见原型的生成python类的集合:
pip install googleapis-common-protos
编译protobuf文件:使用以下命令生成Python代码:
python3 -m grpc_tools.protoc -I<目标路径目录> --python_out=. --grpc_python_out=<目标文件所在目录路径> <目标文件data.proto>
python3 -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. data.proto
注意:protobuf文件,为定义服务接口代码文件,这里是data.proto
会生成:data_pb2.py 与 data_pb2_grpc.py
data_pb2.py是服务接口映射
data_pb2_grpc.py方法映射
protobuf内容示例:
syntax = "proto3";
package grpcDemo;
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
}
service gRPC {
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
接口调用内容示例:
# -*- coding: utf-8 -*-
import grpc
import data_pb2,data_pb2_grpc
_HOST = 'localhost'
_PORT = '8080'
def run():
conn = grpc.insecure_channel(_HOST + ':' + _PORT)
client = data_pb2_grpc.gRPCStub(channel=conn)
response = client.SayHello(data_pb2.HelloRequest(name='hello,world!'))
print("received: " + response.text)
if __name__ == '__main__':
run()
来源:https://www.cnblogs.com/yhleng/p/9505813.html
0
投稿
猜你喜欢
- 在MAC的Anaconda上使用pyspark,主要包括以下步骤:在MAC下安装Spark,并配置环境变量。在Anaconda中安装引用py
- 首先为什么会有axis这个概念?因为在numpy模块中,大多数处理的是矩阵或者多维数组,同时,对多维数组或者矩阵的操作有多种可能,为了帮助实
- MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个列
- django 模版显示的html中出现'类似的ascii字符,这是由于django对单引号进行了转义,可以通过关闭转 * 决h
- python面向对象编程入门,我们需要不断学习进步"""抽象工厂模式的实现"""
- 如何用FILESYSTEMOBJECT组件来做一个站内搜索?看看下面我们提供的例子,主要由searchpage.htm和searchresu
- 南京的炎炎夏日也未能挡住书友会朋友们的参与,下午两点半我们正式开始了这个月的话题:“浏览器”。一开始大家大致上说了一些自己认为各浏览器中各自
- 程序设计中我们时常需要检测用户输入是否正确,特别是姓名,地址等等是不是输入的汉字。那么,如何判断一个字符是不是汉字呢?其实在asp中至少有两
- 我们都知道,Numpy 是 Python 环境下的扩展程序库,支持大量的维度数组和矩阵运算;Pandas 也是 Python 环境下的数据操
- 本文实例讲述了python实现复制整个目录的方法。分享给大家供大家参考。具体分析如下:python有一个非常好用的目录操作类库shutil,
- 前言python号称是编程界的万金油,那么是否可以做个读取电脑网卡wifi并暴力破解的小脚本呢?在这个基础上为了方便体验是不是可以将其打包成
- Scrapy中Spider的用法Spider类定义了如何爬取某个(或某些)网站。包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中
- 1、版本说明 :python 2.7.10, Django (1.6.11.6),centos72、步骤说明:A、django 建立项目dj
- 目标:目标文件为一个float32型存储的二进制文件,按列优先方式存储。本文使用Python读取该二进制文件并使用matplotlib.py
- 第一种import win32clipboardimport time#速度快 容易出错class niubi(): def l
- 前言本文主要给大家介绍了关于python使用正则表达式的非贪婪模式的相关内容,分享出来供大家参考学习,下面话不多说了,来一起详细的介绍吧。在
- 本文实例讲述了Python编程中的反模式。分享给大家供大家参考。具体分析如下:Python是时下最热门的编程语言之一了。简洁而富有表达力的语
- 一、意义:当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、网络故障、进程故障和系统故障)影响数
- 首先说说什么是内存泄露,在一个进程中,如果某一块内存无法访问,且直到进程结束为止也无法释放,那么就发生了内存泄露。通常这种情况发生在C++之
- PEP 3107引入了功能注释的语法,PEP 484 加入了类型检查标准库 typing 为类型提示指定的运行时提供支持。示例:def f(