我使用Protocol Buffers编译器生成Python源代码。
它生成的目录结构类似于
namespace/
|-- package1/
| \-- messages_pb2.py
|-- package2/
\-- messages_pb2.py
它不包含__init__.py
个文件。鉴于编译器擦除了每个编译的整个目录结构,添加__init__.py
文件不是一个选项,并建议构建的源旨在以其他方式导入。
我尝试将namespace
的路径添加到sys.path
但由于某种原因导入仍然失败:
>>> from sys import path
>>> path.append(... absolute path to `namespace` ...)
>>> import package1.messages_pb2
... ImportError ...
协议缓冲区如何生成要使用的源?
所以说明:
messages_pb2
模块引用其他包。因此package2.messages_pb2
可能有from namespace.package1 import messages_pb2
我很少使用Python,并且没有找到解决方案。