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

问题描述 投票:7回答:1

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

python python-import python-2.x python-module protobuf-python
1个回答
0
投票

我遇到了同样的问题。令我惊讶的是,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的模块)。

© www.soinside.com 2019 - 2024. All rights reserved.