当我尝试使用命令生成文件
python -m grpc_tools.protoc -I./ --python_out=. --grpc_python_out=. service.proto
我得到错误。
Traceback:
test_client.py:11: in <module>
from tests.remote.grpc_wrapper.service_pb2_grpc import TestServiceServicer, add_TestServiceServicer_to_server, \
service_pb2_grpc.py:4: in <module>
import service_pb2 as service__pb2
E ModuleNotFoundError: No module named 'service_pb2'
我该如何解决?我确实重新安装了protobuf,但对我没有帮助。
pip uninstall protobuf
pip install -U protobuf
P.S。我用conda,我用
conda install protobuf
但这对我也没有帮助。
答案 0 :(得分:0)
有一种说法是在this issue的.proto文件中在生成时进行指定。据我所知,您目前有两个选择:
1)更改第4行,使.
位于前面(这表示相对导入):
from . import service_pb2 as service__pb2
2)更改“ grpc_wrapper”文件夹中的__init__.py
文件,使其包括:
import os
import sys
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))