【发布时间】:2019-02-05 18:58:36
【问题描述】:
我正在尝试将图形对象转储到 pickle 文件中,但使用 Python 3.7.1 时一直失败。
#python.version = 3.7.3
#pickle.format_version = '4.0'
#dill.__version__ = '0.2.9'
print(ax, type(ax))
print(matplotlib.get_backend())
print(matplotlib.__version__)
print(sys.version_info)
with open("MyFile", "wb") as dill_file:
dill.dump(ax, dill_file)
pt.savefig("MyFile_"+now)
结果是:
AxesSubplot(0.125,0.11;0.775x0.35)
<class'matplotlib.axes._subplots.AxesSubplot'>
Qt5Agg
3.0.2
sys.version_info(major=3, minor=7, micro=1, releaselevel='final', serial=0)
然后报错:
> 回调错误:无法腌制 FigureCanvasQTAgg 对象
上面的代码不在一个类中。我尝试过其他后端(Agg、TkAgg 等),结果相同。我也尝试过仅使用 pickle.dump 获得相同的结果。
【问题讨论】:
-
我无法复制。这对我来说在 python 3.6.6、mpl 3.0.2 上运行良好。
-
@ImportanceOfBeingErnest 我正在使用 python 3.7.1,我更新了我的问题。
-
是的,但 python 版本无关紧要。我刚刚测试过,它也适用于 3.7.1。
-
无赖。现在我只是将数据保存到 csv,然后用一个绘制它的程序来调用它......这有一个好处是内存占用更小。
标签: python python-3.x matplotlib pickle dill