我使用 grpc-tools 包(版本 1.43.0)中的 protoc 工具和 python 3.8.10 为我的 proto3 服务生成数据类型以及客户端和服务器存根。包含存根的生成文件(以“_grpc.py”结尾)使用不带包名称的导入语句导入包含消息数据类型的生成文件:“import
附注我目前正在使用 sed 对生成的文件进行后期编辑以添加包名称,因此这里只感兴趣,让 protoc 首先为 python 3 生成正确的形式。
TL;博士;使用 https://github.com/cpcloud/protoletariat。
通过该工具,您可以关注关于 protocolbuffers 问题的讨论, 这基本上澄清了预期用途是泵送所有存根 在平面源目录中。
官方建议将Python Proto Package文件夹添加到Path中(2023年9月)
您可以使用 __init__.py 中的以下代码来完成此操作
import os
import sys
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))