You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python的grpc-tools中protoc模块无法自动识别site-packages内proto文件的问题求助

Python的grpc-tools中protoc模块无法自动识别site-packages内proto文件的问题求助

最近我在使用Python的gRPC工具时遇到了个头疼的问题,想向大家求助:

在Python生态里,gRPC相关的proto文件是拆分到不同小发包里发布的,比如我要用到status.proto,就得安装grpc-status包;而protoc编译器是通过grpc-tools这个Python包提供的模块来调用的。

我先写了一个简单的proto文件my.proto:

# my.proto
syntax = "proto3";
import "google/rpc/status.proto";

接着我用虚拟环境安装了所需依赖:

python -m venv v
source v/bin/activate
pip install grpc-status grpc-tools

但问题出现了,当我运行protoc编译命令时:

python -m grpc_tools.protoc -I . my.proto

直接抛出了错误:

google/rpc/status.proto: File not found.

可实际上这个文件明明存在!它就在虚拟环境的v/lib/python3.11/site-packages/google/rpc/status.proto路径下,是安装grpc-status时依赖的googleapis-common-protos包自带的。

我挺困惑的,既然proto文件是通过独立包分发的,protoc又是以Python模块形式提供的,为什么它不能自动找到这些已经安装好的proto文件呢?有没有办法让protoc自动识别site-packages里的这些proto文件,不用手动指定路径?

备注:内容来源于stack exchange,提问作者Richard Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 07:12:58