python 中的协议缓冲区:未生成类

2024-02-05

My proto文件如下:

syntax = "proto3";
option csharp_namespace = "Proto";

message FileListRequest {
    repeated File Files = 1;
}

message File {
    string Path = 1;
}

message ImageFile {
    File File = 1;
    Size Size = 2;
    bytes Content = 3;
}

message Size {
    int32 Width = 1;
    int32 Height = 2;
}

message SendNextFile {
    
}

我用以下命令编译它:

protoc --proto_path=. -I . --python_out=..\..\python\Modules\PreloadingIteratorWrapper\ .\filelist.proto

这将创建以下文件:

# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: filelist.proto
"""Generated protocol buffer code."""
from google.protobuf.internal import builder as _builder
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0e\x66ilelist.proto\"\'\n\x0f\x46ileListRequest\x12\x14\n\x05\x46iles\x18\x01 \x03(\x0b\x32\x05.File\"\x14\n\x04\x46ile\x12\x0c\n\x04Path\x18\x01 \x01(\t\"F\n\tImageFile\x12\x13\n\x04\x46ile\x18\x01 \x01(\x0b\x32\x05.File\x12\x13\n\x04Size\x18\x02 \x01(\x0b\x32\x05.Size\x12\x0f\n\x07\x43ontent\x18\x03 \x01(\x0c\"%\n\x04Size\x12\r\n\x05Width\x18\x01 \x01(\x05\x12\x0e\n\x06Height\x18\x02 \x01(\x05\"\x0e\n\x0cSendNextFileB\x08\xaa\x02\x05Protob\x06proto3')

_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'filelist_pb2', globals())
if _descriptor._USE_C_DESCRIPTORS == False:

  DESCRIPTOR._options = None
  DESCRIPTOR._serialized_options = b'\252\002\005Proto'
  _FILELISTREQUEST._serialized_start=18
  _FILELISTREQUEST._serialized_end=57
  _FILE._serialized_start=59
  _FILE._serialized_end=79
  _IMAGEFILE._serialized_start=81
  _IMAGEFILE._serialized_end=151
  _SIZE._serialized_start=153
  _SIZE._serialized_end=190
  _SENDNEXTFILE._serialized_start=192
  _SENDNEXTFILE._serialized_end=206
# @@protoc_insertion_point(module_scope)

根据文档 https://developers.google.com/protocol-buffers/docs/pythontutorial该文件应该包含每种消息类型的类,但事实并非如此。为什么?


我有同样的问题。尝试使用 grpc-tools (我在另一个建议使用该工具的线程中找到了答案)我终于找到了解决方案。

只需将这个参数添加到 protoc 命令即可:--pyi_out like:

protoc --proto_path=. -I . --python_out=..\..\python\Modules\PreloadingIteratorWrapper\ --pyi_out=..\..\python\Modules\PreloadingIteratorWrapper\ .\filelist.proto

它将为您生成 _bp2.py 以及相应的 _bp2.pyi (存根文件)。之后,您的 IDE 将看到类名称,智能感知将起作用等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 中的协议缓冲区:未生成类 的相关文章

  • 如何计算 pandas datetime 对象的均值和方差?

    如何计算 YYYY MM DD 形式的 python 日期时间对象的汇总统计数据 均值和标准差 我想对具有不同 ID 的不同日期时间对象组执行此操作 数据如下 import datetime as dt df pd DataFrame Da
  • 让 VoiceChannel.members 和 Guild.members 返回完整列表的问题

    每当我尝试使用 VoiceChannel members 或 Guild members 时 它都不会提供适用成员的完整列表 我从文本命令的上下文中获取 VoiceChannel 和 Guild 如下所示 bot command name
  • 在 Celery 任务中调用 Google Cloud API 永远不会返回

    我正在尝试拨打外部电话Google Cloud Natural Language API从一个内Celery任务 使用google cloud python包裹 问题是对 API 的调用永远不会返回 挂起 celery task def g
  • VSCode Settings.json 丢失

    我正在遵循教程 并尝试将 vscode 指向我为 Scrapy 设置的虚拟工作区 但是当我在 VSCode 中打开设置时 工作区设置 选项卡不在 用户设置 选项卡旁边 我还尝试通过以下方式手动转到文件 APPDATA Code User s
  • 我应该使用 Python 双端队列还是列表作为堆栈? [复制]

    这个问题在这里已经有答案了 我想要一个可以用作堆栈的 Python 对象 使用双端队列还是列表更好 元素数量较少还是数量较多有什么区别 您的情况可能会根据您的应用程序和具体用例而有所不同 但在一般情况下 列表非常适合堆栈 append is
  • 在 Django Admin 中调整字段大小

    在管理上添加或编辑条目时 Django 倾向于填充水平空间 但在某些情况下 当编辑 8 个字符宽的日期字段或 6 或 8 个字符的 CharField 时 这确实是一种空间浪费 字符宽 然后编辑框最多可容纳 15 或 20 个字符 我如何告
  • 为什么 web2py 在启动时崩溃?

    我正在尝试让 web2py 在 Ubuntu 机器上运行 所有文档似乎都表明要在 nix 系统上运行它 您需要下载源代码并执行以下操作 蟒蛇 web2py py 我抓住了source http www web2py com examples
  • 打印包含字符串和其他 2 个变量的变量

    var a 8 var b 3 var c hello my name is var a and var b bye print var c 当我运行程序时 var c 会像这样打印出来 hello my name is 8 and 3 b
  • Python 内置的 super() 是否违反了 DRY?

    显然这是有原因的 但我没有足够的经验来认识到这一点 这是Python中给出的例子docs http docs python org 2 library functions html super class C B def method se
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 使用 Python Oauthlib 通过服务帐户验证 Google API

    我不想使用适用于 Python 的 Google API 客户端库 但仍想使用 Python 访问 Google APIOauthlib https github com idan oauthlib 创建服务帐户后谷歌开发者控制台 http
  • python的shutil.move()在linux上是原子的吗?

    我想知道python的shutil move在linux上是否是原子的 如果源文件和目标文件位于两个不同的分区上 行为是否不同 或者与它们存在于同一分区上时的行为相同吗 我更关心的是如果源文件和目标文件位于同一分区上 shutil move
  • 如何将 ascii 值列表转换为 python 中的字符串?

    我在 Python 程序中有一个列表 其中包含一系列数字 这些数字本身就是 ASCII 值 如何将其转换为可以在屏幕上回显的 常规 字符串 您可能正在寻找 chr gt gt gt L 104 101 108 108 111 44 32 1
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • Protobuf 如何编码 oneof 消息结构

    对于这个 python 程序 在编码时运行 protobuf 编码会给出以下输出 0a 10 08 7f8a 0104 08 02 10 0392 0104 08 02 10 03 18 01 我不明白的是为什么8a后面有一个01 为什么9
  • 如何以正确的方式为独立的Python应用程序制作setup.py?

    我读过几个类似的主题 但还没有成功 我觉得我错过或误解了一些基本的事情 这就是我失败的原因 我有一个用 python 编写的 应用程序 我想在标准 setup py 的帮助下进行部署 由于功能复杂 它由不同的 python 模块组成 但单独
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp
  • python 对浮点数进行不正确的舍入

    gt gt gt a 0 3135 gt gt gt print 3f a 0 314 gt gt gt a 0 3125 gt gt gt print 3f a 0 312 gt gt gt 我期待 0 313 而不是 0 312 有没有
  • 如何在Python脚本中从youtube-dl中提取文件大小?

    我是 python 编程新手 我想在下载之前提取视频 音频大小 任何 YouTube 视频 gt gt gt from youtube dl import YoutubeDL gt gt gt url https www youtube c

随机推荐

  • Java 8 流式添加两个或多个列表中的值

    我试图进入 Java 8 并了解流和 lambda 来解决各种问题 但陷入了这个特定的问题 我通常使用 forEach 并将值存储在 Map 中来解决 您将如何编写代码来使用 Java 8 中的新功能获取预期列表 List
  • 具有选择条件的 pandas 数据框中的高效最大选择

    我有一个带有列的 pandas 数据框 除其他外 user id and start time 我想高效且易读地找到与每个用户的最大值关联的所有行start time 例如 如果这是我的数据 user id start time A B C
  • 批量传输和 Android USB API

    我有一个程序 我尝试通过 USB 将我的 Android 设备连接到网络摄像头 我在一些事情上遇到了麻烦 即正确传输数据 我尝试过使用bulkTransfer 但似乎无法识别它的使用情况 我一直在尝试寻找可能对我有帮助的例子 例如here
  • 使用 Scala 生成代码

    在 Scala 中使用 SBT 工具链时 是否可以编写一个任务来读取项目源代码的特殊部分以在编译时生成 scala 代码 有什么想法甚至文章 教程吗 我正在寻找与 Template Haskell 非常相似的东西 环树者 scala htt
  • Laravel Lighthouse 中的身份验证

    在我的 graphql API 中 我必须通过两个不同的因素来授权对字段的请求 用户是否有权访问数据或者数据是否属于用户 例如 用户应该能够看到自己的用户数据 并且所有具有管理员权限的用户也应该能够看到这些数据 我想保护这些字段 以便具有不
  • RedisTemplate过期不起作用

    我正在尝试测试 RedisTemplate 中的过期方法 例如 我将会话存储在 redis 中 然后尝试检索会话并检查值是否相同 对于过期会话 我使用 redisTemplate 的 expire 方法 对于获取过期会话 我使用 getEx
  • NuGet System.Drawing.Common .NET 6 CA1416 此调用站点可在所有平台上访问。 “Image.FromStream(Stream)”仅支持:“windows”

    升级 NuGetSystem Drawing Common到 6 0 0 会导致以下错误 CA1416 此调用站点可在所有平台上访问 仅在 Windows 上支持 Image FromStream Stream https www nuge
  • 无法将整数类型转换为 uuid

    我试着跑python3 manage py migrate 但我得到了这个error File Library Frameworks Python framework Versions 3 8 lib python3 8 site pack
  • 特定于页面的 CSS 规则 - 将它们放在哪里?

    通常 当我设计网站时 我需要将特定样式应用于页面上的特定元素 并且我绝对确定它只会应用于该页面上的该元素 例如绝对定位的按钮 或者其他的东西 我不想诉诸内联样式 因为我倾向于同意样式与标记分开的理念 所以我发现自己在内部争论将样式定义放在哪
  • Pandas 重新映射到列中的范围

    我有一个带有 id s 列的 DataFrame 可以包含重复项 gt gt gt df user id head Out 3 0 2134 1 1234 2 4323 3 25434 4 1234 Name user id dtype i
  • Roxygen2 - 如何 @export 引用类生成器?

    例如 假设我有以下包称为Test我想导出课程A In R Test R docType package import methods exportClass A A lt setRefClass A methods list foo ide
  • ASP.NET 内存泄漏 - OracleCommand 对象

    我有内存泄漏 我很难找出问题出在哪里 ASP NET 进程时常会增加到 1GB 我已按照本页 http humblecoder co uk tag windbg 上的说明进行操作 并且 gcroot 命令返回以下内容 最后 x 行 我查看了
  • 将字符串格式化为标题大小写

    如何将字符串格式化为标题大小写 http www grammar monster com lessons capital letters title case htm 下面是一个在 C 中执行此操作的简单静态方法 public static
  • 如何在映射器(Hadoop)中使用MATLAB代码?

    我有一个处理图像的 matlab 代码 我想创建一个使用该代码的 Hadoop 映射器 我遇到了以下解决方案 但不确定哪一个最好 因为对我来说 在 hadoop 中的每个从属节点上安装 matlab 编译器运行时非常困难 手动将该 matl
  • SendKeys Ctrl + C 到外部应用程序(文本到剪贴板)

    我有一个应用程序作为托盘图标位于系统托盘中 我已经注册了一个热键 按下该热键将捕获任何应用程序中的当前文本选择 甚至在 Web 浏览器中也是如此 我的方法是发送组合键 Ctrl C 来复制文本 然后访问剪贴板并在我自己的应用程序中使用该文本
  • 如何使用 FlowLayout 确定 UICollectionView 的高度

    我有一个UICollectionView与UICollectionViewFlowLayout 我想计算它的内容大小 返回intrinsicContentSize通过自动布局调整其高度所需的 问题是 即使我对所有单元格都有固定且相等的高度
  • .Net Core - 复制到剪贴板?

    Is it possible to copy something to the clipboard using Net Core in a platform agnostic way 看来Clipboard https msdn micro
  • iOS 13 后,在 pdf 上导航文本框不再起作用 - 使用 PDFKIT 时似乎存在手势问题

    我实现了一个项目 我使用 PDFKIT 来执行一些如何在 pdf 上添加浮动文本框的操作 并且它可以通过用户触摸屏幕进行导航GestureRecognizer移动并放置在用户决定的地方 在iOS 13之前它可以完美运行 但是在iOS 13之
  • MVC4 StyleBundle 未按正确的顺序呈现包

    我正在尝试渲染一组 css 文件 但输出的顺序错误 我已经尝试过解决方案 MVC4 Beta 缩小和捆绑 在浏览器中排序文件和调试 https stackoverflow com questions 9657412 mvc4 beta mi
  • python 中的协议缓冲区:未生成类

    My proto文件如下 syntax proto3 option csharp namespace Proto message FileListRequest repeated File Files 1 message File stri