如何禁用grpc_tools.protoc生成代码中的experimental API?
解决gRPC生成代码使用实验性API的问题
可行方案
- 添加插件兼容性参数:在原protoc命令中加入
--grpc_python_opt=use_experimental_asyncio=false参数,强制生成基于稳定版API的代码。修改后的完整命令如下:python3 -m grpc_tools.protoc -I. --python_out=. --pyi_out=. --grpc_python_out=. --grpc_python_opt=use_experimental_asyncio=false $proto_file - 降级gRPC工具版本:如果上述参数无效,可尝试将
grpcio-tools降级到3.19.x及更早版本,这类版本默认使用稳定的同步API,不会生成grpc.experimental.unary_unary这类实验性代码。执行降级命令:pip install grpcio-tools==3.19.0
补充说明
新版grpcio-tools默认启用了异步IO相关的实验特性,才会生成这类实验性API代码。通过上述两种方式,可切换回稳定的同步实现,避免依赖实验性接口带来的兼容性风险。
内容的提问来源于stack exchange,提问作者pyang
相关产品推荐
相关产品推荐

