无法将kivy小部件保存到文件

时间:2016-09-03 23:14:38

标签: python kivy pickle dill

尽可能地尝试,我无法使用泡菜或莳萝腌制kivy小部件。我已经查看了类似的问题here,但给出的答案似乎不起作用。我已经尝试了莳萝和泡菜的每个协议。试图这样做:

from kivy.uix.widget import Widget
import pickle

widget=Widget()
pickle.dump(widget,open('example.pkl','wb'),protocol=4)

给出如下错误:

Traceback (most recent call last):
File "nonsense.py", line 9, in <module>
pickle.dump(widget,open('test.pkl','wb'),protocol=4)
_pickle.PicklingError: Can't pickle <class 'weakref'>: attribute lookup weakref on builtins failed

不同的协议会产生不同的错误。我也试图使用莳萝(因为它可以腌制更多类型)并且我会得到一组不同的错误,具体取决于所使用的协议。

对于协议0:

TypeError: __init__() takes exactly 0 positional arguments (1 given)
协议4的

_pickle.PicklingError: args[0] from __newobj_ex__ args has the wrong class

这两个协议之间的主题有不同的变化。

小部件是否无法以任何方式进行腌制?如果失败了,是否可以以其他方式将小部件保存到文件中?如果不保存窗口小部件类的任何实例,那么保存我需要的信息将非常困难。

0 个答案:

没有答案