使用protobuf类生成的Python代码时,会出现以下错误:
cannot import name descriptor_pb2
等效的C++生成代码工作正常,因此我们的实际原始定义没有问题。
当我尝试导入我们的类时会发生此错误,如下所示:
import sys
sys.path.append('..\path\to\generated')
sys.path.append('..\contrib\protobuf\python')
from foobar_pb2 import FooBar
附加系统路径是否正确?
我签入了protobuf\python\google\protobuf
目录中的descriptor_pb2.py
但只找到了descriptor.py
-我们使用的是最新版本,所以我认为我们没有丢失任何文件。
有人知道解决办法是什么吗?
我相信你必须自己产生
descriptor_pb2.py
:gen/
是一个包含生成的python类的文件夹。在那之后,下面的工作很好:
必须存在
../gen/descriptor_pb2.py
。请确保按照自述文件中的指示安装protobuf运行时库。不能简单地直接使用包外的源代码,因为作为安装过程的一部分,protoc(protobuf编译器)需要生成descriptor_pb2.py。
在我的例子中,由于protobuf没有正确安装,所以找不到描述符pb2。 在protobuf的python子目录中,确保运行
相关问题 更多 >
编程相关推荐