python:导入protobuf生成的文件时出现问题

时间:2019-03-27 16:34:52

标签: python python-import protobuf-python

我正在测试protobuf生成的文件,以便与python一起使用。我遇到的问题是protobuf在目录中分离了生成的python文件,然后我在使用python2导入时遇到了问题。

说,我有目录commona,每个目录都有自动生成的(通过protobuf)py文件。如果您查看a中的一个文件,它的导入内容为:

from common import x_pb2 as common_dot_x__pb2

因此,我要创建另一个脚本来将文件导入a中。因此。...如果我尝试将commona的父级提供给PYTHONPATH,似乎找不到在a中导入脚本的方法:

from a import blah

(blah.py是a中的自动生成的py文件)我明白了:

ImportError: No module named a

所以...。如果我尝试将a目录添加到PYTHONPATH(并将导入调整为仅说import blah,那么我开始遇到从common导入的问题(自动生成的import语句) a中的.py文件):

    from common import x_pb2 as common_dot_x__pb2
ImportError: No module named common

解决方法应该是什么?

1 个答案:

答案 0 :(得分:0)

好.....有一个解决方法:在自动生成文件所在的所有目录中,添加一个空的 init .py文件。这样导入就开始表现出来。有人知道这样做更简单吗? (而且,我不必看这是否可以通过protoc或通过maven自动完成)。