grpc_tools.protoc生成pb2文件后出现auth_pb2模块找不到错误
gRPC Python
ModuleNotFoundError: auth_pb2 排查提示 - 检查auth目录的模块合法性:确保auth子目录下存在空的
__init__.py文件,Python需要该文件将目录识别为可导入模块,没有则手动创建。 - 修正导入语句:app.py中需使用
from auth import auth_pb2或import auth.auth_pb2,而非直接import auth_pb2——后者只会在app.py所在目录查找模块,不会遍历子目录。 - 验证Python路径:在app.py开头添加以下代码,确认项目根目录是否在
sys.path中:
若根目录未包含,可手动添加import sys print(sys.path)sys.path.append("你的项目根目录绝对路径"),或确保在项目根目录下执行python app.py。 - 检查pb2文件完整性:打开
auth/auth_pb2.py,确认文件开头有正常的protobuf导入代码(如from google.protobuf import descriptor as _descriptor),且无语法报错。同时核对proto文件中的package声明,若proto里写了package auth;,生成的代码需匹配该结构。 - 确认protoc执行路径:确保执行protoc命令时处于项目根目录,否则
-I.和./auth.proto的路径会出错,导致生成的文件内部导入逻辑异常。可回到根目录重新执行一次生成命令:python -m grpc_tools.protoc -I. --python_out=./auth --grpc_python_out=./auth ./auth.proto
内容的提问来源于stack exchange,提问作者Qagan
相关产品推荐
相关产品推荐

