如何在大型对象上查找 Python Pickle 中的错误源

2024-03-16

我已经接管了某人的一个相当大的项目的代码。我正在尝试保存程序状态,并且有一个巨大的对象存储了几乎所有其他对象。我正在尝试腌制这个对象,但出现以下错误:

pickle.PicklingError:无法pickle:找不到它builtin.module

从我在谷歌上找到的信息来看,这是因为我在某个地方导入了 python init 之外的东西,或者类属性引用了一个模块。所以,我有两个问题:

  1. 任何人都可以确认这就是出现此错误的原因吗?我是否在代码中寻找正确的东西?

  2. 有没有办法找到哪行代码/对象成员导致了pickle中的困难?回溯仅给出 pickle 中发生错误的行,而不是被 pickle 的对象的行。


2)您可以将 pickle.Pickler 子类化并对其进行猴子修补以显示其腌制内容的日志。这应该可以更容易地追踪问题所在。

import pickle
class MyPickler (pickle.Pickler):
    def save(self, obj):
        print 'pickling object', obj, 'of type', type(obj)
        pickle.Pickler.save(self, obj)

这仅适用于 pickle.Pickler 的 Python 实现。在Python 3.x中,pickle模块默认使用C实现,Pickler的纯Python版本称为_Pickler。

# Python 3.x
import pickle
class MyPickler (pickle._Pickler):
    def save(self, obj):
        print ('pickling object  {0} of type {1}'.format(obj, type(obj))
        pickle._Pickler.save(self, obj)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在大型对象上查找 Python Pickle 中的错误源 的相关文章

  • Google App Engine queue.yaml 无法在开发服务器中工作

    我无法让 dev appserver py 识别我使用queue yaml 创建的自定义队列 他们没有出现在http localhost 8000 taskqueue http localhost 8000 taskqueue 当我尝试向其
  • 使用 matplotlib 从“列表列表”绘制 3D 曲面

    我已经搜索了一些 虽然我可以找到许多有用的网格网格示例 但没有一个清楚地表明我如何将列表列表中的数据转换为可接受的形式 以适应我所讨论的各种方式 当谈到 numpy matplotlib 以及我所看到的建议的术语和步骤顺序时 我有点迷失 我
  • 使用 pygame 显示 unicode 符号

    我检查了其他答案 但不明白为什么我的代码错误地显示 This is what I currently see https i stack imgur com 8tNIK png 这是关于文本渲染的相关代码 font pygame font
  • 如何检查python xlrd库中的excel文件是否有效

    有什么办法与xlrd库来检查您使用的文件是否是有效的 Excel 文件 我知道还有其他库可以检查文件头 我可以使用文件扩展名检查 但为了多平台性我想知道是否有任何我可以使用的功能xlrd库本身在尝试打开文件时可能会返回类似 false 的内
  • Python - 来自 .进口

    我第一次尝试图书馆 我注意到解决图书馆内导入问题的最简单方法是使用如下结构 from import x from some module import y 我觉得这件事有些 糟糕 也许只是因为我不记得经常看到它 尽管公平地说我还没有深入研究
  • 删除 Django 1.7 中的应用程序(和关联的数据库表)

    是否可以使用 Django 1 7 迁移来完全删除 卸载应用程序及其所有跟踪 主要是其所有数据库表 如果没有 在 Django 1 7 中执行此操作的适当方法是什么 python manage py migrate
  • Python 中的流式传输管道

    我正在尝试使用 Python 将 vmstat 的输出转换为 CSV 文件 因此我使用类似的方法转换为 CSV 并将日期和时间添加为列 vmstat 5 python myscript py gt gt vmstat log 我遇到的问题是
  • 工作日重新订购 Pandas 系列

    使用 Pandas 我提取了一个 CSV 文件 然后创建了一系列数据来找出一周中哪几天崩溃最多 crashes by day bc DAY OF WEEK value counts 然后我将其绘制出来 但当然它按照与该系列相同的排名顺序绘制
  • Keras:如何保存模型或权重?

    如果这个问题看起来很简单 我很抱歉 但是阅读 Keras 保存和恢复帮助页面 https www tensorflow org beta tutorials keras save and restore models https www t
  • 如何使用文本相似性删除 pandas 数据框中相似(不重复)的行?

    我有数千个数据 这些数据可能相似也可能不相似 使用 python 的默认函数 drop duplicates 并没有真正的帮助 因为它们只检测相似的数据 例如 如果我的数据包含类似以下内容怎么办 嗨 早上好 嗨 早上好 Python 不会将
  • 一段时间后终止线程的最 Pythonic 方法

    我想在线程中运行一个进程 它正在迭代一个大型数据库表 当线程运行时 我只想让程序等待 如果该线程花费的时间超过 30 秒 我想终止该线程并执行其他操作 通过终止线程 我的意思是我希望它停止活动并优雅地释放资源 我认为最好的方法是通过Thre
  • 在 matplotlib 中的极坐标图上移动径向刻度标签

    From matplotlib 示例 http matplotlib org examples pylab examples polar demo html import numpy as np import seaborn as sbs
  • 使用 python 绘制正值小提琴图

    我发现小提琴图信息丰富且有用 我使用 python 库 seaborn 然而 当应用于正值时 它们几乎总是在低端显示负值 我发现这确实具有误导性 尤其是在处理现实数据集时 在seaborn的官方文档中https seaborn pydata
  • 使用Python计算目录的大小?

    在我重新发明这个特殊的轮子之前 有没有人有一个很好的例程来使用 Python 计算目录的大小 如果例程能够很好地以 Mb Gb 等格式格式化大小 那就太好了 这会遍历所有子目录 总结文件大小 import os def get size s
  • 通过索引访问Python字典的元素

    考虑一个像这样的字典 mydict Apple American 16 Mexican 10 Chinese 5 Grapes Arabian 25 Indian 20 例如 我如何访问该字典的特定元素 例如 我想在对 Apple 的第一个
  • 用 python 编写的数学语法检查器

    我需要的只是使用 python 检查字符串是否是有效的数学表达式 为了简单起见 假设我只需要 运算符 也作为一元 带有数字和嵌套括号 为了完整性 我还添加了简单的变量名称 所以我可以这样测试 test 3 2 1 valid test 3
  • 将seaborn.palplot轴添加到现有图形中以可视化不同调色板

    将seaborn人物添加到子图中是usually https seaborn pydata org examples cubehelix palette html创建图形时通过传递 ax 来完成 例如 sns kdeplot x y cma
  • SocketIO + Flask 检测断开连接

    我在这里有一个不同的问题 但意识到它可以简化为 如何检测客户端何时从页面断开连接 关闭其页面或单击链接 换句话说 套接字连接关闭 我想制作一个带有更新用户列表的聊天应用程序 并且我在 Python 上使用 Flask 当用户连接时 浏览器发
  • 当数据库不是 Django 模型时,是否可以使用数据库中的表?

    是否可以从应用程序数据库中的表获取查询集 该表不是应用程序中的模型 如果我有一个不是名为 cartable 的模型的表 从概念上讲 我想这样做 myqueryset cartable objects all 有没有相对简单的方法来做到这一点
  • 双击打开 ipython 笔记本

    相关文章 通过双击 osx 打开 ipython 笔记本 https stackoverflow com questions 16158893 open an ipython notebook via double click on osx

随机推荐

  • React-Native:哪种自动化 CI 工具最好? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 React Native 社区 你们使用什么 CI 工具 我们的团队构建了一个react native ios应用程序 我们还有一个单独的测试团
  • 恢复发送至自部署合约的BNB

    我正在尝试创建 BOT 因此在 BSC 中从 eatamask 创建并部署了一个合约 我向该合约发送了一些 BNB 来检查 但没有成功 我怎样才能拿回BNB 感谢帮助 因为我对此很陌生 除非您在合约中具有允许您提取资金的自定义功能 否则它们
  • 如果 URL 是 https,Python urllib2 会给出“网络无法访问错误”

    我正在尝试使用 urllib2 库获取一些网址 a urllib2 urlopen http www google com ret a read 上面的代码工作正常 并给出了预期的结果 但是当我创建 url https 时 它会给出 网络无
  • 将文本插入活动迷你缓冲区

    我试图在运行外部命令后将文本插入到迷你缓冲区中 例如 call interactively eval expression insert blah 当然 问题是 eval expression 在用户输入之前不会返回 我的最终目标是添加一些
  • Xcode 6:项目导航器中没有 Frameworks 文件夹

    我正在使用 Xcode 6 并遵循 Xcode 版本 4 教程 因此这里和那里的情况有所不同 我的项目导航器中似乎没有 Frameworks 文件夹 因此当我下载一些 framework 文件并在项目编辑器的构建阶段手动添加它们时 我没有
  • HttpUtility.UrlEncoded URL 段的错误请求 400

    因此 如果我的应用程序 MVC url 中存在 url 编码段 则 IIS 会抛出 BAD REQUEST 400 e g http u lasoo com au Offer http u lasoo com au Offer 9289 7
  • json 从遗留属性名称反序列化

    如何设置 Newtonsoft Json 使用旧成员名称反序列化对象 但使用当前成员名称序列化它 编辑 要求是从正在序列化 反序列化的类中删除过时的成员 这是一个需要序列化和反序列化的示例对象 我给了一个属性一个属性 其中包含它过去可能已序
  • 将字典转换为方阵

    我想学习如何将字典转换为方阵 根据我所读到的内容 我可能需要将其转换为 numpy 数组 然后重新调整它的形状 我不想使用 reshape 因为我希望能够根据用户输入的信息来执行此操作 换句话说 我希望代码能够给出一个方阵 无论用户输入了多
  • 必须重新验证此请求的标头错误吗?

    我注意到 Chrome 缓存了一个视频文件 我用服务器上的另一个替换了它 chrome 继续从缓存中提供旧的 使用 JW flash 播放器 5 请求的标头如下所示 joe joe desktop wget O S spider http
  • 为什么这个 MySQL 查询的结果会相互相乘?

    SELECT user id SUM COALESCE point points 0 AS total points SUM CASE WHEN point date gt this month THEN point points ELSE
  • 在 Flutter 中以编程方式扩展 ExpansionTile

    我只是想用ExpansionTile在 Flutter 中 我将示例修改为如下所示 我想隐藏箭头并使用Switch扩大瓷砖 可以吗 或者我是否需要以编程方式呈现子项的自定义小部件 基本上 我只需要显示 隐藏孩子们 这是我的代码 import
  • 如何在 bash 脚本中重新组织 sed 正则表达式中的嵌套引号,从而触发“未终止的替代模式”错误?

    以下命令抛出一个unterminated substitute patternbash 中的错误 eval echo sed s a u a z n n 1 但并不适合所有人 Linux 显然运行良好 Mac 抛出未终止的替代模式错误 我该
  • 骨干获取回调的正确方法

    我的 Backbone 应用程序有一个名为schedule 我对成功和错误调用正确函数的区别有点困惑 我尝试了下面列出的两种可能的方法 但我不知道有什么区别以及从放置的路由器调用函数的正确方法是什么在外部视图中 第一种方式 require
  • 使用OpenGL和GLFW的简单三角形[重复]

    这个问题在这里已经有答案了 我编写了一个小程序来使用顶点缓冲区显示一个简单的三角形 对于我使用 glfw 的窗口 我的环境是 Mac 10 9 XCode 5 窗口看起来是黑色的 但三角形不是油漆 这里是代码 include
  • 除应用内支付之外的 iOS 支付网关

    我有一个iPhone应用程序 其中有在线支付功能 对于付款 我想使用我自己的网站上的支付网关 这样我就可以将用户重定向到网站进行付款 谁能帮我 苹果会允许这个功能吗 任何帮助或建议将不胜感激 提前致谢 苹果允许第三方支付网关系统 Strip
  • java.lang.NoClassDefFoundError:无法初始化类 hudson.util.ProcessTree$UnixReflection

    我在尝试使用 Jenkins 构建项目时遇到了这个问题 java lang NoClassDefFoundError 无法初始化类 hudson util ProcessTree UnixReflection java lang NoCla
  • 使用 multer 和 gridfs 快速上传文件(文件损坏?)

    我正在尝试上传文件 图像 上传正常 文件存储在 Mongo 中 并且与原始文件具有相同的内容类型和大小 然后当我尝试下载它时 文件已损坏但保持相同的内容类型 如果我上传pdf 它会被识别为pdf 如果它是png 它也会被识别 但我无法打开它
  • 在 Web 服务器上部署可执行进程的最佳方法是什么?

    原问题 这个问题的标题可能措辞有点笨拙 但情况是这样的 我的服务器上部署了一个 NET Web 项目 它仍处于测试阶段 因此有很多发布和重新发布的情况发生 我还在同一个 VS 解决方案中编写了一个 C 可执行文件 称为 admin exe
  • Python 中的 DATEXII XML 文件到 DataFrame

    最近几天我一直在尝试打开并读取某个 XML 文件 DATEXII 格式 但到目前为止还没有成功 这是关于交通数据NDW 开放数据网站 http 83 247 110 3 OpenDataHistorie 荷兰道路和交通数据数据库 XML 文
  • 如何在大型对象上查找 Python Pickle 中的错误源

    我已经接管了某人的一个相当大的项目的代码 我正在尝试保存程序状态 并且有一个巨大的对象存储了几乎所有其他对象 我正在尝试腌制这个对象 但出现以下错误 pickle PicklingError 无法pickle 找不到它builtin mod