我正在测试protobuf生成的文件,以便与python一起使用。我遇到的问题是protobuf在目录中分离了生成的python文件,然后我在使用python2导入时遇到了问题。
说,我有目录common
和a
,每个目录都有自动生成的(通过protobuf)py文件。如果您查看a
中的一个文件,它的导入内容为:
from common import x_pb2 as common_dot_x__pb2
因此,我要创建另一个脚本来将文件导入a
中。因此。...如果我尝试将common
和a
的父级提供给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
解决方法应该是什么?
答案 0 :(得分:0)
好.....有一个解决方法:在自动生成文件所在的所有目录中,添加一个空的 init .py文件。这样导入就开始表现出来。有人知道这样做更简单吗? (而且,我不必看这是否可以通过protoc或通过maven自动完成)。