问题标签 [dill]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1357 浏览

python - Python多进程更改类实例到位

我有一个类实例列表,我想并行调用相同的实例方法,使用 pathos 能够腌制实例方法,真正的问题是当我想更改/添加实例的属性时,它没有t 工作,我认为这是因为子流程的酸洗是输入的深层副本。任何人都知道如何解决这个问题?我不想改变编写实例方法的方式(比如返回一个值,以后再放在一起)。

这是输出,没有找到 num 属性,我认为是因为在那些副本上进行了更改。


按照评论中的建议,我尝试从子进程返回 self ,但返回的 self 不是其原始类型似乎是一个悲伤的错误。请参阅以下代码:

这是输出:

我使用默认的多处理包,它没有这样的问题。

0 投票
1 回答
1329 浏览

python - 如何将自定义类型添加到 dill 的 pickleable 类型

我正在尝试序列化一些我没有编写并且无法修改需要腌制/挖掘的代码。该脚本包含一个 mongodb 集合对象——它实际上并没有在以后使用,但是对其进行挖掘会引发错误。当我尝试挖掘它时,我收到错误:

我在这里看到枚举接受类型的代码: https://github.com/uqfoundation/dill/blob/master/dill/_objects.py(第 132-190 行),我怀疑这是我可能会改变的地方允许新类型。

但是,我不清楚添加自定义类型的预期接口是什么。(或者也许为了腌制除此之外的所有东西,这可能还是更容易?)

0 投票
1 回答
1038 浏览

python - 无法腌制 Python 类实例

这里我有这个类定义类定义。当我在下面运行代码时,它会引发以下错误。

基本上我有一个类实例在里面使用另一个类实例。我也使用了 cPickle,但是当我倾倒它时它会升高;

对解决方案有任何想法吗?

0 投票
0 回答
856 浏览

python - 为什么我在 ipython 并行收集语句中得到一个没有属性 __main__ 的模块?

这是与此相关的问题:

https://stackoverflow.com/questions/27596463/why-do-i-get-a-cannedarray-object-has-no-attribute-pickled-in-ipython-gather

不同之处在于,现在我尝试use_dill在 ipython 中并行,当我尝试提取数据时,它给了我一个错误。我不知道数据是否被push编辑过。

我得到的错误是:

我不知道发生了什么,非常感谢任何帮助。

如果您想了解更多信息,请告诉我,我会添加。

谢谢

0 投票
2 回答
1371 浏览

python - 腌制 Matplotlib 情节引发 PicklingError:不能腌制 'RendererAgg' 对象

我有一个使用 matplotlib 创建绘图的程序 - 有时是线图,有时是 NonUniformImages。我希望能够腌制这些情节以便稍后重新打开它们,而无需再次经历整个创建过程。无论出于何种原因,它一直在抛出一个PicklingError: Can't pickle 'RendererAgg' object. 我试过同时使用import dill as pickleimport pickle,以及所有 4 种不同的酸洗选项,但没有改变。

轴在此处定义:

并在此处设置:(Imaging.figureProperties 是一个列表,用于保存多个[ax1,ax2]对象。也在与 whereax1ax2定义相同的函数中。)

最后,数据在这里被腌制(i由用户选择,但它将在列表中):

只要使用. _ _ 如果我使用标准,它会抛出相同的. 这里发生了什么?'wb''w'import dill as pickleimport picklePicklingError

0 投票
1 回答
937 浏览

python - 为什么不能 dill/pickle 类定义?

dill是腌制大多数 Python 对象的好工具,我在 IPython 中并行使用它来序列化计算。我一直在讨论的一个问题是围绕类定义进行挖掘。我得到的错误之一解释如下。

在尝试序列化类定义时,我不断AssertionErrordill. 我想知道为什么其中一个有效而另一个失败:

我在 Python 2.7.6 上使用 dill 0.2.2。

0 投票
2 回答
6674 浏览

python - 泡菜,莳萝 - ImportError:没有名为 moduleA.moduleB.moduleC 的模块

我对pickle.load()文件有疑问。转储和加载在dill_read_write.py

dill_read_write.py

当 PyQt 应用程序(项目)运行时,将对象ContactGeometry数据保存到 pickle 文件。函数write()被调用moduleC.py

模块C.py

保存对象并创建泡菜文件。但是,当我仅运行文件dill_read_write.py以从 pickle 文件中读取(加载)对象数据时,出现以下错误:

我搜索了一下,发现它dill可以比pickle使用类执行得更好,但我在实现它时遇到了问题。我还发现我必须在文件__reduce__()中的类中实现。ContactGeometrycontact_geometry.py

contact_geometry.py

但我不确定应该返回什么方法?如何从当前情况成功加载泡菜文件?

以下是项目结构,如果有帮助的话。

在此处输入图像描述

0 投票
0 回答
690 浏览

python - 使用 dill 腌制工作流对象

我正在尝试pyutilib.workflow使用 python 2.7 来腌制(使用 dill 扩展名)一个工作流对象。这里的最终目标是能够将这些工作流对象插入到 MongoDB 数据库中,并在需要时从另一端拉出:

testworkflow.py只包含testTask(),其写法如下:

但是当我尝试执行它来序列化工作流对象时,我从pickle.py文件中得到了一个庞大的回溯列表,其最底部只是“AssertionError”。

它似乎有以下问题:

严重的是,上面的回溯块约占总列表的 1%。几个回溯到同一行代码,那么它是一个循环引用问题吗?我对这种类型的项目完全陌生,我已经搜索了所有其他相关问题,但似乎没有一个真的足够相关。

我错过了一些较新的库吗?有一个更好的方法吗?

编辑:根据 Martijn Pieters 的有用评论

酸洗是一个递归过程,这就是为什么您会看到某些行重复的原因。该过程最终回到之前被腌制的对象(self.memo 中的 id(obj) 仅当对象已被处理时才为真)。

那么我怎样才能阻止这种情况被触发呢?为什么酸洗不能自动忽略已经序列化的块作为递归的基本情况?

编辑 2:'dill.detect.trace(true)' 回溯:

0 投票
2 回答
503 浏览

python - pathos.multiprocessing 中的 WindowsError

运行上面给出了以下错误:

这是在交互式 IPython 控制台(Python 2.7 的 Anaconda Distribution)中的 Windows 7 64 位机器上。我正在使用 pathos 版本 0.2a1.dev0 和 Dill 版本 0.2.2。当我创建一个“池”时,这个错误似乎是可重现的。

0 投票
1 回答
332 浏览

python - 使用 pickle 或 dill 保存 PyGMO 的优化结果

我使用 PyGMO生成了一个种群。总体是包含计算的各个结果的类。我可以遍历总体并保存当前函数值和参数值。不幸的是,我无法倾倒整个班级,例如使用泡菜或莳萝。如果我尝试:

我确实得到:

序列化整个对象会很棒,因为我可以将它用于热启动。

有任何想法吗 ?