首页 > 解决方案 > 如何调试`can't pickle _thread.RLock objects`?

问题描述

我明白了

不能腌制 _thread.RLock 对象

当我尝试腌制一个巨大的嵌套对象时出错,我试图找出树的哪个特定元素导致它。

有没有办法不用手动遍历嵌套对象树?

例如,我希望看到这样的消息

当我在 Quux 对象内的 Bar 对象内拾取 Foo 对象时,无法腌制 _thread.RLock 对象

class Quux:
    def __init__(self):
        self.a = [Bar()]
class Bar:
    def __init__(self):
        self.a = {"zz":Foo()}
class Foo:
    def __init__(self):
        self.a = _thread.RLock()

pickle.dump(Quux(),...)

标签: pythondebuggingpickle

解决方案


推荐阅读