【问题标题】:How to make protoc generated python stub file to include package name in import如何使 protoc 生成的 python 存根文件在导入中包含包名
【发布时间】:2022-01-31 21:03:12
【问题描述】:

我使用来自 grpc-tools 包(版本 1.43.0)和 python 3.8.10 的 protoc 工具为我的 proto3 服务生成数据类型以及客户端和服务器存根。包含存根的生成文件(以“_grpc.py”结尾)使用没有包名的导入语句导入包含消息数据类型的生成文件:“import _pb2.py”。如果我理解正确,当生成的代码包含在包中时,为了使此导入在 python 3 中正常工作,此导入需要包含包含它的包的名称:'from import _pb2 .py'。有没有办法让 protoc 使用我需要的包名生成这个导入?

附:我目前正在使用 sed 发布编辑生成的文件以添加包名称,所以这里只对让 protoc 首先为 python 3 生成正确表单的方式感兴趣。

【问题讨论】:

  • 巧合的是,我刚刚(重新)遇到了同样的问题。 (之前碰到过……)

标签: python python-3.x import grpc protoc


【解决方案1】:

TL;博士;使用https://github.com/cpcloud/protoletariat

通过该工具,您可以关注protocolbuffers issue 上的讨论, 这基本上澄清了预期用途是泵送所有存根 在一个平面源目录中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 2017-02-26
    • 2015-09-21
    • 1970-01-01
    相关资源
    最近更新 更多