问题标签 [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 回答
269 浏览

python - 在 python 中使用 dill 取消选中对象

我使用 dill 为我的整个工作区创建了一个泡菜文件 -

现在,我可以从这个泡菜文件中只取消选中的对象,而不是取消所有对象?

非常感谢!

0 投票
1 回答
501 浏览

multiprocessing - Pathos 多处理酸洗问题

我正在为我们在团队中进行的一些测试开发一个自动化框架。我们遇到了这个 Pickling 错误,在做了一些研究之后,我遇到了一些解决方案并查看了随附的 github 页面:

我安装了 pathos 并相信我已经正确实现了它,但我仍然收到 Pickling 错误。这是示例代码和回溯:

test_start_callback 是一个工厂函数,用于生成不带参数的函数。我编辑了未使用的代码段。

追溯

我错过了其他 SO 链接中未提及的内容,或者我传递此函数的方式也不被 pathos 支持。

0 投票
0 回答
115 浏览

python-2.7 - 使用 Windows 10 在 python 2.7.13/14 上的 pathos cpickle 错误

基于使用 pathos 和 dill 的示例多进程,我遇到了 cPickle 错误。我像www3cam那样做;加上一点点……通过删除 pathos、dill、multiprocess 和 pyreadline。然后pip install pathos --no-cache-dir小心地删除上面提到的那些侧包后点击。全新安装、冷重启 PC 以及稍后更新 Anacoda2……装有 cPickles 的罐子……还在,Frank Zappa 继续唱着他的“Titties and Beer”歌曲。

修改后的代码1

也许应该像这里的示例“捕获和打印 PyQt5 回溯?

下面的代码片段让我思考和好奇是否必须为莳萝做类似的事情?

最新错误:

文件“c:\python\anac2\lib\site-packages\pathos\multiprocessing.py”,第 137 行,在地图中 return _pool.map(star(f), zip(*args)) # chunksize File “c:\ python\anac2\lib\site-packages\multiprocess\pool.py”,第 251 行,在 map 中返回 self.map_async(func, iterable, chunksize).get() 文件“c:\python\anac2\lib\site- packages\multiprocess\pool.py",第 567 行,在 get raise self._value cPickle.PicklingError: Can't pickle : attribute lookup builtin .function failed

有关此错误的更多信息位于:我的 cPickle 转储

0 投票
0 回答
376 浏览

python-3.x - 使用 dill 保存类变量更改

我用 tkinter 编写了一个使用类作为结构的应用程序。目前我尝试实现一个“保存”功能,以便可以关闭应用程序,如果它重新启动,则决定是从头开始还是使用已经存在的 aka。腌制数据。

我读到了 pickle-module 及其无法保存类变量的弱点,所以我决定改用 dill-module。

我的问题: dill 保存了我的类变量的起始值,但是如果我让用户更改类变量(通过调用 classmethods),则不会保存更改。有什么办法可以用泡菜或莳萝模块做到这一点?

我创建了一个产生错误的最小示例。您可以看到,即使在调用更改变量的实例方法之后,实例变量的更改也会被保存。不幸的是,它不适用于类变量,它是相应的类方法:

0 投票
1 回答
111 浏览

python - 当在类范围内定义约束函数和参数时,类实例变得不可(莳萝)pickleable

为了诊断lmfit对象的dill unpickling 问题,我想尝试将我的约束函数定义包含在我稍后将 pickle 其实例的类中。但是,在类范围内定义约束函数的地方转储一个莳萝泡菜会引发(下面代码的第 (3) 节)。RuntimeError: maximum recursion depth exceeded

我想不出为什么会这样的直观原因。例如,如果我将一个类作用域函数填充到一个类作用域 OrderedDict 中,则该类实例仍然是dill可腌制的(下面代码的第 (1) 节)。

熟悉lmfit的人:知道为什么lmfit / asteval会触发这种行为吗?

那些熟悉 OOP 但不熟悉lmfit的人:对可能导致此类问题的代码类型有什么想法吗?

谢谢!

0 投票
2 回答
961 浏览

python - 加载包含函数字典的腌制(莳萝)文件

这是我之前提出的一个问题的后续:Loading functions in pickle file that uses class wrapper,我想在类 wrapper 下腌制一个函数字典,但类 wrapper 模块无法加载。

我已经解决了这个问题,dill而不是pickle

我从 中删除了一些不必要的变量(涉及从数据创建 func_dict)globals(),它们不是必需的,因为我只想使用 func_dict。

现在,当我使用以下方法加载腌制文件时:

我得到:

无法访问函数字典!我需要做什么才能获得预期的输出?

0 投票
1 回答
546 浏览

python - 写入泡菜时找到有问题的变量

我正在尝试使用dill. 但我得到'NoneType' object is not callable. 我不知道是什么物体导致了这个问题。那么有没有人有任何想法来调试和找到这个变量?

这是回溯:

0 投票
0 回答
317 浏览

python - 通过 pickle 或 dill 进行队列和管道序列化

有没有人有运气使用 pickle.dumps() 或 dill.dumps() 序列化 multiprocessing.Pipe() 或 multiprocess.Queue() 并成功将其加载回其原始形式。

我正在使用python 2.7。

例如,

0 投票
1 回答
725 浏览

python - 列表的Python多进程字典

我需要用 Python 3.6 在多进程中做一些事情。即,我必须更新一个添加对象列表的字典。由于这些对象是不可拾取的,我需要使用dill而不是picklemultiprocessfrompathos而不是multiprocessing,但这不应该是问题。

将列表添加到字典需要在添加到字典之前重新序列化列表。这会减慢一切,并且与没有多处理所需的时间相同。你能给我一个解决方法吗?

这是我使用 python 3.6 的代码: init1工作但速度慢,init2速度快但坏了。其余仅用于测试目的。

0 投票
1 回答
93 浏览

multithreading - 将 python3 程序与巨大的复杂对象并行化

介绍

我有一个用Python 3.6编写的相当复杂的 Python 程序(比如超过 5.000 行)。该程序解析超过 5.000 个文件的庞大数据集,处理它们创建数据集的内部表示,然后创建统计数据。由于我必须测试模型,我需要保存数据集表示,现在我正在通过使用序列化来完成dill(在表示中有pickle不支持的对象)。整个数据集的序列化,未压缩,大约需要 1GB。

问题

现在,我想通过并行化加速计算。完美的方法是多线程方法,但 GIL 禁止这样做。multiprocessing模块(并且multiprocess - 也是dill兼容的)使用序列化在进程之间共享复杂对象,因此,在我设法发明的最佳情况下,由于数据集的巨大规模,并行化对我的时间性能影响很大。

问题

处理这种情况的最佳方法是什么?

我知道posh,但它似乎只是x86兼容的,ray但它也使用序列化,gilectomy(没有 gil 的 python 版本)但我无法使其并行化线程并且Jython没有 GIL 但与 python 3 不兼容。 X。

我愿意接受任何替代方案,任何语言,无论它可能多么复杂,但我无法从头开始重写代码。