gpt4 book ai didi

python - 调试 pickle

转载 作者:太空狗 更新时间:2023-10-30 00:36:49 24 4
gpt4 key购买 nike

我正在尝试挑选相当复杂的对象层次结构并获取异常:

pickle.PicklingError: Can't pickle <class 'function'>: attribute lookup builtins.function failed

是否有任何合理的方法可以用来测试对象层次结构的 pickleability?我的目标是找到有问题的函数的位置

最佳答案

为此,我会使用 dill ,它几乎可以在 python 中序列化任何东西。莳萝也有 some good tools帮助您了解代码失败时导致 pickle 失败的原因。

>>> import dill
>>> dill.loads(dill.dumps(your_bad_object))
>>> ...
>>> # if you get a pickling error, use dill's tools to figure out a workaround
>>> dill.detect.badobjects(your_bad_object, depth=0)
>>> dill.detect.badobjects(your_bad_object, depth=1)
>>> ...

如果你绝对想这样做,你可以使用 dill 的 badobjects(或其他检测函数之一)递归地深入到你的对象的引用链中,并弹出 unpickleable 对象,而不是调用它在每个深度,如上所述。

此外,objgraph也是对测试套件的一个非常方便的赞美。

>>> # visualize the references in your bad objects
>>> objgraph.show_refs(your_bad_object, filename='your_bad_object.png')

关于python - 调试 pickle ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12461901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com