最近,Dill 完全停止为我工作。它这样做:
>>> import dill
>>> dill.dumps([1,2,3])
b'\x80\x03]q\x00(K\x01K\x02K\x03e.'
>>> dill.loads(_)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python34\lib\site-packages\dill\dill.py", line 260, in loads
return load(file)
File "C:\Python34\lib\site-packages\dill\dill.py", line 250, in load
obj = pik.load()
File "C:\Python34\lib\pickle.py", line 1039, in load
dispatch[key[0]](self)
File "C:\Python34\lib\pickle.py", line 1066, in load_proto
raise ValueError("unsupported pickle protocol: %d" % proto)
ValueError: unsupported pickle protocol: 93
数字每次都不一样。这可能在一个月前开始发生。重新安装莳萝pip
没有帮助。
从使用调试器单步执行它看起来它从数据的开头正确读取协议版本,然后读取泡菜数据中的第一个指令并出于某种原因将其解释为协议版本。不过我真的不知道,因为我不太了解它是如何pickle
工作的。