TypeError:无法pickle MplCanvas对象

2024-07-07 08:40:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将一个相当复杂的对象保存为一个类似

import methods
import vars
import matplotlib
import numpy

class Awesome:
    def __init__(self, canvasHandle, x, y):
        self.alpha = 'jada'
        self.bravo = 'bla'
        self.graphic, = canvasHandle.ax.plot(x,y,'r-')
        ... 
    def show(self):
        self.graphic.set_visible(True)
    def hide(self):
        self.graphic.set_visible(False)

但是,当我用

^{pr2}$

我得到了一个错误:

TypeError: can't pickle MplCanvas objects

如何将该对象保存到一个文件中,而不管文件中有什么内容?可读性是不重要的,它只需要转储内存,使它恢复生活。。。在


Tags: 文件对象importselfnumpymatplotlibdefvars
1条回答
网友
1楼 · 发布于 2024-07-07 08:40:42

我找到了解决办法: 我现在只传递包含的figure对象,而不是传递一个canvas对象(我这样做是为了用“mplüuconnect”捕捉事件)。用“mpl_connect”捕捉事件也可以在图形画布上工作,而不仅仅是在更高级别的画布上(因此不需要传递它)。现在dill保存对象没有错误!在

相关问题 更多 >