python/c++ 利用gRPC完成python远程调用c++

Python Django写的后台,想要调用小伙伴的c++模块方法,目前想到三种解决方案:http,gRPC,本地调用(ctypes,SWIG)出于以下考虑:后台与模型模块分离部署(部分模型模块对GPU,显存等有各类要求)跨语言(Python 调用 c++方法)简单,学习时长短决定学习并尝试用gRPC完成此次调用。步骤编写.proto文件定义服务,规定接口样式。用 proto...
摘要由CSDN通过智能技术生成

Python Django写的后台,想要调用小伙伴的c++模块方法,目前想到三种解决方案:http,gRPC,本地调用(ctypes,SWIG)
出于以下考虑:

  • 后台与模型模块分离部署(部分模型模块对GPU,显存等有各类要求)
  • 跨语言(Python 调用 c++方法)
  • 简单,学习时长短

决定学习并尝试用gRPC完成此次调用。

步骤

  • 编写.proto文件定义服务,规定接口样式。
  • 通过.proto文件的服务定义中生成gRPC客户端和服务器端的接口(python生成***_pb2.py和***_pb2_grpc.py),可以通过protocol buffer的编译器protoc以及一个特殊的gRPC Python插件来完成(不同语言插件、包不同)
  • 使用gRPC的API完成不同语言的client和server

安装

#gRPC 的安装:
$ pip install grpcio
#安装 ProtoBuf 相关的 python 依赖库:
$ pip install protobuf
#安装 python grpc 的 protobuf 编译工具:
$ pip install grpcio-tools

grpc git examples(python)

helloworld.proto

// Filename: helloworld.proto
syntax="proto3";
package helloworld;

//Greeter:服务名称;SayHello:函数名;
//gRPC允许定义4种类型的service方法:
//简单RPC;应答流式RPC;请求流式RPC;双向流式RPC
service Greeter {
   
  rpc SayHello (HelloRequest) returns (HelloReply) {
   }
}
<
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值