是否有一种方法要求protoc在用于生成.py文件的目录中生成空的__init__.py
文件,以便可以将它们用作模块?
答案 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
的模块)。