【发布时间】:2025-12-12 17:20:03
【问题描述】:
我正在尝试将一个相当复杂的对象保存为一个看起来像这样的文件
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)
但是,当我用
运行 dillwith open('awesome.job', 'wb') as outputFile:
dill.dump(self.awesome), outputFile)
我得到错误:
TypeError: can't pickle MplCanvas objects
无论里面有什么,我怎样才能将该对象保存到文件中?可读性并不重要,它只需要转储内存并使其恢复活力......
【问题讨论】:
-
您的对象应该存储图形(您在这里称为
canvasHandle)。例如。self.fig = fig在 init 方法中。
标签: python matplotlib typeerror dump dill