grpc:从Maven将原型文件编译成python时,缺少grpc.py文件

时间:2019-08-29 20:24:15

标签: python maven grpc grpc-python grpc-tools

当我从python生成grpc文件(运行python -m for(var property in category_images){ console.log(category_images[property].length); for (var i = 0; i < category_images[property].length; i++) { category_images[property][i]["src_compressed"] = "HI"; } } )时,对于X个原型文件grpc_tools.protocX_pb2.py,我分别得到2个文件。

但是,通过使用protobuf-maven-plugin(0.6.1)中的 compile-python maven目标,我只能得到X_pb2.py文件,而不是 grpc文件。我的问题是pb2.py文件中缺少服务。那么我该如何构建grpc.py文件呢?

从点子列表中

X_pb2_grpc.py
grpcio          1.23.0 
grpcio-tools    1.23.0 
protobuf        3.9.1  

2 个答案:

答案 0 :(得分:1)

xolstice Maven插件似乎不支持此功能。 gRPC代码生成需要protoc编译器的插件。该插件被烘焙到PyPI上的grpcio-tools包中。您必须编译Python gRPC protoc插件和supply it to protobuf-maven-plugin才能使其正常工作。 protocPlugin参数看起来应该可以满足您的要求。

但是在更高的层次上,您有理由使用Maven构建Python工件吗?

答案 1 :(得分:0)

在将compile命令放入脚本中并在编译期间使用exec-maven-plugin执行脚本方面,我取得了巨大的成功。

我使用了一个shell脚本来运行gRPC Quick Start中的compile命令的变体。需要注意的一点是,无论您将脚本放在何处,除非您导航到脚本内的另一个文件夹,否则它将从项目根目录运行。