Docker中执行grpc_tools.protoc遇protoc-gen-pyi报错的原因与解决
报错原因及解决方法
报错原因
使用--pyi_out参数生成Python类型提示(.pyi)文件时,需要依赖protoc-gen-pyi插件,但该插件未安装在Docker镜像中,或者其路径不在系统PATH环境变量内,导致protoc无法找到并执行这个工具,最终报错退出。
解决步骤
在Dockerfile中先安装对应依赖包,再执行protoc命令即可解决:
先安装包含
protoc-gen-pyi的依赖包
在Dockerfile里添加安装步骤:RUN pip install grpcio-tools mypy-protobuf执行原protoc命令
安装完成后,protoc-gen-pyi会被自动添加到Python的bin目录(通常在PATH范围内),直接运行原命令即可:RUN python -m grpc_tools.protoc -I ./ --python_out=. --pyi_out=. --grpc_python_out=. my.proto
如果安装后仍提示找不到插件,可手动指定插件路径:
RUN python -m grpc_tools.protoc -I ./ --python_out=. --pyi_out=. --grpc_python_out=. --plugin=protoc-gen-pyi=$(which protoc-gen-pyi) my.proto
内容的提问来源于stack exchange,提问作者Scott
相关产品推荐
相关产品推荐

