[英]python cPickle.PicklingError: Can't pickle <type 'instancemethod'> .I know the reason, but I don't know how to solve it
[英]How can I know if python 3 is using cPickle or Pickle?
我看到了关于Pickle和cPickle的以下两个答案,它们由python 3自动处理,对用户透明:
我如何知道在python 3中是否使用了快速版本(cPickle)? 我想强迫它使用cPickle。 我的主要兴趣甚至不在速度上,而是在文件的较小大小上,因为我生成的文件最终大于1 GB。
除非您从源代码构建Python二进制文件,否则几乎可以肯定会使用C扩展名。
但是,如果必须确定,请检查_pickle
模块是否可以导入:
>>> import _pickle
pickle
模块将导入_pickle
并且只有在出现ImportError
失败的情况下,它才会使用纯Python实现。
明确地说:在Python 2中被称为cPickle
已重命名为_pickle
并透明地导入,您无需做任何明确的操作即可使用它。 Python 2中的pickle
和cPickle
之间存在分歧,这简直令人困惑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.