问题标签 [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 - 如何使用 dill 序列化类定义?
在Python pickle:处理更新的类定义的答案中,包的作者dill
写道:
“好的,我已经在 github 上的最新版本中添加了这个功能。实现起来比我想象的要少得多……只需用 pickle 序列化类定义,瞧。”
安装dill
并修改它后,对我来说如何在dill
. 有人可以提供一个明确的例子吗?我想腌制类实例并序列化类定义。
(我是 python 新手,我这个功能似乎非常重要,因为当腌制一个对象时,尽可能接近保证你可以看到对象(可能是模拟的结果)会很棒类定义之后的未来可能已经改变,并且您没有以易于访问的方式跟踪所有更改。)
python - Dill.detect.children 对象类型
Dill.detect.children
需要两个参数;obj
和objtype
。
检查我可以调用的音频文件对象:
哪个返回没有错误。
但是如何寻找实例方法呢?
返回
试过了
返回
试过了
返回
这不应该返回与调用类似的结果dir(audiofile)
吗?
python - 推荐人、被推荐人、父母和孩子
我正在尝试使用Dill包,特别是它的检测模块,并且在直观地理解参照物、参照物、父母和孩子的含义时遇到了一些麻烦。
引用是允许访问某些数据的值。
引用对象是被引用的对象,对吧?
所以在下面的代码中:
an_instance, an_instance2, an_instance3
的所指对象是否a_list
也是MyClass
的所指对象a_list
,但在链上更深一层?
因此,通过->
表示引用,引用链看起来像:
这是否会被视为:
反之,是否是另一个深度级别的a_list
推荐人?an_instance
an_instance2, an_instance3
MyClass
制作推荐人链:
这是否也会被设想:
有人可以清楚地解释引用、继承和容器在哪里重合和不重合吗?
python - 引用链的示例,引用者
进一步使用Dill 包。昨天发布的例子说明了对参照物、参照物、继承和容器的一些无知。答案很有见地,但我仍然无法想出一些例子来显示引用者和引用者链中的几个层次的深度。
昨天我在想那instance
会是referrer
它的班级。在 Dill 文档中, children是referrers,所以在这种情况下,一个child ofdepth=2
将是一个孙子,对吧?那会是object
指(点)另一个object
指另一个的object
吗?
具有至少两个深度的引用链和引用链的对象的示例是什么?
考虑:
返回:
具体来看list
这里的对象,唯一的参考对象(父母)great_grand_parent
是字符串“Henrietta Ancient One”。
引用者(Children)(的结果,gc.get_referrers()
按指定对象类型过滤)包含两个对象:list
包含字符串“Henrietta Ancient One”的 A 和string
Henrietta Ancient One。(depth=2 和 depth=1 返回相同的结果。)
如何制作 Dill 可以返回的对象:
- 两种不同深度的推荐人
- 两种不同深度的参照物
python-2.7 - 使用 dill 加载 pkl 文件
我有一个非常复杂的字典和转储,直接使用 dill 加载。这是参考这个答案。但有一点修改。我需要将其保存在某个文件中并读取该文件以供以后使用。
这是我的一段代码:
NWORDSa
是我保存到的字典'abc.pkl'
我不知道如何将其读回原件NWORDSa
。我试过了:
和(想将其保存在变量 bbn 中)
但两者都不起作用。有没有更好的方法?
python - dill.detect.at 无法引用“0x1023d2600”处的对象
更多地挖掘莳萝。特别是 detect.at 方法,它调用:
为什么我无法“获取”似乎位于地址的字符串对象:4332529152
?
ipython - 激活 Dill 后,告诉 IPython Parallel 再次使用 Pickle
我正在使用 IPython 并行开发分布式应用程序。在 IPython 集群引擎上有几个任务一个接一个地执行。其中一项任务不可避免地会使用闭包。因此,我必须通过调用来告诉 IPython 使用 Dill 而不是 Pickle dv.use_dill()
。虽然这应该是暂时的。
启用 Dill 后,有什么方法可以再次激活 Pickle 吗?我找不到任何dv.use_pickle()
可以明确显示此类选项的函数(形式为 )。
python - 使用并行 python 和包中的方法获取“ImportError: No module named”
我正在尝试使用并行 python 来进行一些分布式基准测试(本质上,在来自中央服务器的一组机器上协调和运行一些代码)。在我将功能移动到单独的包之前,我的代码运行良好。从那以后,我不断得到ImportError: No module named some.module.pp_test
。
我的问题实际上是双重的:有没有人遇到过这个问题pp
,如果是,如何解决?我尝试使用dill
(import dill
),但没有帮助。此外,parallelpython 是否有一个很好的替代品,不需要任何额外的基础设施?
我得到的确切错误是:
代码的结构是这样的:
test.py
实现为:
虽然pp_test.py
是:
python - 莳萝模块中 BadItem 的好例子
我正在探索detect
Dill 的方法,并且正在寻找一个坏项目的简单好例子——一个 Dill 无法提取的例子。
我首先想到了一个过程并尝试了:
detectbaditems
如果 Dill 使用 seek to因为你不能在 PIPE 上搜索,我想这是可以预料的。
然后我想,肯定globals()
有东西可以提供。它再次提供相同的内容IOerror
,直到proc
被删除,然后产生:
dill.detect 将作为坏项目返回的项目的一个很好的简单示例是什么?
python - 序列化具有依赖关系的python函数
遵循 StackOverflow 上的许多建议(例如 dill、cloudpickle 等),我尝试了多种方法来腌制具有依赖关系的 python 函数,但似乎都遇到了一个我无法弄清楚的基本问题。
我有一个主模块,它试图从导入的模块中提取一个函数,通过 ssh 将其发送以在远程机器上解压并执行。
所以主要有:
在远程机器上:
如果被腌制和发送的函数是 main 本身定义的顶级函数,那么一切正常。当它们在导入的模块中时,加载函数会失败,并显示“未找到模块模块”类型的消息。
似乎模块名称与函数名称一起被腌制。我看不到任何方法可以“修复”pickle 以消除依赖关系,或者在接收器中创建一个虚拟模块以成为 unpickling 的接收器。
任何指针将不胜感激。
--prasanna