问题标签 [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.
python - Python多进程更改类实例到位
我有一个类实例列表,我想并行调用相同的实例方法,使用 pathos 能够腌制实例方法,真正的问题是当我想更改/添加实例的属性时,它没有t 工作,我认为这是因为子流程的酸洗是输入的深层副本。任何人都知道如何解决这个问题?我不想改变编写实例方法的方式(比如返回一个值,以后再放在一起)。
这是输出,没有找到 num 属性,我认为是因为在那些副本上进行了更改。
按照评论中的建议,我尝试从子进程返回 self ,但返回的 self 不是其原始类型似乎是一个悲伤的错误。请参阅以下代码:
这是输出:
我使用默认的多处理包,它没有这样的问题。
python - 如何将自定义类型添加到 dill 的 pickleable 类型
我正在尝试序列化一些我没有编写并且无法修改需要腌制/挖掘的代码。该脚本包含一个 mongodb 集合对象——它实际上并没有在以后使用,但是对其进行挖掘会引发错误。当我尝试挖掘它时,我收到错误:
我在这里看到枚举接受类型的代码: https://github.com/uqfoundation/dill/blob/master/dill/_objects.py(第 132-190 行),我怀疑这是我可能会改变的地方允许新类型。
但是,我不清楚添加自定义类型的预期接口是什么。(或者也许为了腌制除此之外的所有东西,这可能还是更容易?)
python - 为什么我在 ipython 并行收集语句中得到一个没有属性 __main__ 的模块?
这是与此相关的问题:
不同之处在于,现在我尝试use_dill
在 ipython 中并行,当我尝试提取数据时,它给了我一个错误。我不知道数据是否被push
编辑过。
我得到的错误是:
我不知道发生了什么,非常感谢任何帮助。
如果您想了解更多信息,请告诉我,我会添加。
谢谢
python - 腌制 Matplotlib 情节引发 PicklingError:不能腌制 'RendererAgg' 对象
我有一个使用 matplotlib 创建绘图的程序 - 有时是线图,有时是 NonUniformImages。我希望能够腌制这些情节以便稍后重新打开它们,而无需再次经历整个创建过程。无论出于何种原因,它一直在抛出一个PicklingError: Can't pickle 'RendererAgg' object
. 我试过同时使用import dill as pickle
和import pickle
,以及所有 4 种不同的酸洗选项,但没有改变。
轴在此处定义:
并在此处设置:(Imaging.figureProperties 是一个列表,用于保存多个[ax1,ax2]
对象。也在与 whereax1
和ax2
定义相同的函数中。)
最后,数据在这里被腌制(i
由用户选择,但它将在列表中):
只要我使用. _ _ 如果我使用标准,它会抛出相同的. 这里发生了什么?'wb'
'w'
import dill as pickle
import pickle
PicklingError
python - 为什么不能 dill/pickle 类定义?
dill
是腌制大多数 Python 对象的好工具,我在 IPython 中并行使用它来序列化计算。我一直在讨论的一个问题是围绕类定义进行挖掘。我得到的错误之一解释如下。
在尝试序列化类定义时,我不断AssertionError
从dill
. 我想知道为什么其中一个有效而另一个失败:
我在 Python 2.7.6 上使用 dill 0.2.2。
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__()
中的类中实现。ContactGeometry
contact_geometry.py
contact_geometry.py
但我不确定应该返回什么方法?如何从当前情况成功加载泡菜文件?
以下是项目结构,如果有帮助的话。
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)' 回溯:
python - pathos.multiprocessing 中的 WindowsError
运行上面给出了以下错误:
这是在交互式 IPython 控制台(Python 2.7 的 Anaconda Distribution)中的 Windows 7 64 位机器上。我正在使用 pathos 版本 0.2a1.dev0 和 Dill 版本 0.2.2。当我创建一个“池”时,这个错误似乎是可重现的。
python - 使用 pickle 或 dill 保存 PyGMO 的优化结果
我使用 PyGMO生成了一个种群。总体是包含计算的各个结果的类。我可以遍历总体并保存当前函数值和参数值。不幸的是,我无法倾倒整个班级,例如使用泡菜或莳萝。如果我尝试:
我确实得到:
序列化整个对象会很棒,因为我可以将它用于热启动。
有任何想法吗 ?