当前位置: 首页 > 知识库问答 >
问题:

使用google协议缓冲区生成的python代码时出现问题

朱修真
2023-03-14

当我尝试运行gtfs\u realtime\u pb2时,我遇到以下错误。py(通过google的协议缓冲区运行gtfs-realtime.proto生成的python代码):

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    from google.protobuf import descriptor
ImportError: No module named 'google'

这是指向我遇到问题的特定代码的链接:https://github.com/mattwigway/gtfsrdb

以及安装谷歌协议缓冲区的链接:
https://developers.google.com/protocol-buffers/

我很确定我已经正确安装了缓冲区,那么为什么它吐出来找不到这个模块呢?

共有1个答案

齐阳
2023-03-14

协议缓冲区中包含描述符。原型;这个proto的python代码应该作为安装过程的一部分生成。

您使用的协议缓冲区使用描述符。proto所以它所在的目录需要通过--proto\u path=参数包含在内(请参见在java协议缓冲区中导入“google/protobuf/descriptor.proto

对于Windows系统,安装目录将位于您放置它的位置;对于*nix,答案可能来自

    /usr/include/descriptor.proto 
or 
    /usr/local/include/descriptor.proto 

i、 e.对于java,您可以执行以下操作

protoc addressbookSD.proto --java_out=./ --proto_path=./ --proto_path=<protobuf-install-directory>/src

在哪里

<protobuf-install-directory>\src\google\protobuf
 类似资料:
  • 问题内容: 我正在使用gSoap将旧式C 系统重构为SOA。我们遇到了一些性能问题(非常大的XML),因此我的领导要我看一下协议缓冲区。我做到了,它看起来非常酷(我们需要C 和Java支持)。但是协议缓冲区是仅用于序列化的解决方案,现在我需要将其发送到Java前端。从C ++和Java角度来看,我应该使用什么来通过HTTP(只是内部网络)发送那些序列化的内容? PS。另一个人试图加速我们的gSoa

  • 问题内容: 我的一位同事提出了在运行时生成协议缓冲区类的想法。含义: 有C ++服务器应用程序和Java客户端应用程序通过TCP / IP通过协议缓冲区消息进行通信。 C ++应用程序在不同版本中可能具有不同的架构,并且不一定向后兼容 有与此服务器通信的Java应用程序,该应用程序应支持所有可能的服务器版本。 这个想法是服务器将协议缓冲区的定义作为初始握手的一部分发送,并且Java应用程序在运行时

  • 当我尝试编译测试代码时,我收到链接错误。我在windows 7上使用cygwin。初始步骤如./confiure, make, make test 我还能够生成。pb。抄送和。pb。h使用protoc命令。 但当我试图编译测试代码时,它会出现许多链接错误。我确信这些错误是因为它无法链接到库。 Cygwin在/usr/local/lib中有protobuf静态库和链接库。包含文件位于/usr/loc

  • 据我所知,协议缓冲区主要用于控制服务器和客户端代码的项目。我的一般问题是——协议缓冲区能否用于将二进制消息序列化/反序列化到使用现有协议的服务器?所以,我的问题: > 如果协议缓冲区不支持本机微调现有协议的序列化/反序列化方式,那么可以通过扩展添加该功能吗?是否可以以某种方式添加序列化/反序列化方法可以识别的关键字?也许这可以通过扩展或修改protobuf csharp port或protobuf

  • 我试图在Windows上的Qt中使用google协议缓冲区。因此,我使用MingGW的msys从github编译了protobuf源代码。proto编译器(protoc)似乎工作得很好,但遗憾的是,它无法使用生成的。博士和。pb。从Qt环境中抄送文件。 将此添加到我的。pro文件: 但我仍然得到“未定义的引用…”当我试图编译这个类时,它使用了所有的方法。 代码必须正确,因为它在使用protoc和Q

  • 我正在使用Google Protocol Buffers向服务器发送消息。我对如何发送图像与如何接收图像感到困惑。有关详细信息,请参阅下面的代码,但我的问题是: 我需要base64_decode从未经过base64编码的返回字符串吗,因为它是使用char*和size发送的?也许Google Protocol Buffers处理了这个问题,但我在生成的类中找不到任何证据。 我可能在这里找到了答案,但