有没有一种方法可以要求protoc在生成.py文件的目录中生成空的__init__.py
文件,以便它们可以用作模块?
有没有一种方法可以要求protoc在生成.py文件的目录中生成空的__init__.py
文件,以便它们可以用作模块?
我遇到了同样的问题。我很惊讶protoc还没有解决这个问题。此外,似乎protoc生成的Python代码还有其他问题。请参见https://github.com/protocolbuffers/protobuf/issues/881
因此,目前的答案是不行。Protoc不能生成__init__.py
文件。
一种选择可能是使用https://github.com/danielgtaylor/python-betterproto从.proto生成Python代码(我们的proto定义也结构化在子文件夹中)。
我目前正在研究的另一个选项是使用bash脚本手动添加一个空的init.py文件:在所有子文件夹中创建空文件
find <path-to-generated-python-proto> -type d -exec touch {}/__init__.py \;
编辑:我在生成的代码的所有文件夹中添加了空的 __init__.py
,这样我就可以使用 find_packages
打包 Python 模块(因为它只能找到具有 __init__.py
的模块)。