protobuf和python:protoc可以生成__init__.py文件吗?

时间:2019-03-27 17:20:57

标签: python python-import python-2.x python-module protobuf-python

是否有一种方法要求protoc在用于生成.py文件的目录中生成空的__init__.py文件,以便可以将它们用作模块?

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。令我惊讶的是,protoc尚未解决。同样,协议生成的Python代码似乎还有其他问题。参见https://github.com/protocolbuffers/protobuf/issues/881

因此,答案是。 Protoc无法生成__init__.py文件。

一个选择可能是使用https://github.com/danielgtaylor/python-betterproto从.proto生成Python代码(我们的proto定义也在子文件夹中构造)。

我目前正在研究的另一个选项是使用bash脚本手动添加一个空的 init .py文件:Creating empty file in all subfolders

find <path-to-generated-python-proto> -type d -exec touch {}/__init__.py \;

编辑:我在生成的代码的所有文件夹中输入了空的__init__.py,然后可以使用find_packages打包Python模块(因为那样只能找到带有__init__.py的模块)。