Skip to main content
 首页 » 编程设计

python之我怎么知道 python 3 使用的是 cPickle 还是 Pickle

2025年05月04日21zhengyun_ustc

我看到这两个关于 Pickle 和 cPickle 的答案已经由 python 3 自动处理,对用户透明:

我怎么知道在 python 3 中,它是否使用快速版本 (cPickle)?我想强制它使用 cPickle。我的主要兴趣甚至不在速度上,而是在文件的较小尺寸上,因为我生成的文件最终会大于 1 GB。

请您参考如下方法:

除非您从源代码构建 Python 二进制文件,否则您几乎肯定会使用 C 扩展。

但是,如果您必须确定,请检查是否可以导入 _pickle 模块:

>>> import _pickle 

pickle module imports _pickle并且只有在出现 ImportError 失败时才会使用纯 Python 实现。

明确一点:在 Python 2 中被称为 cPickle 的东西已经被重命名为 _pickle 并且是透明导入的,你不需要做任何明确的事情来制作使用它。在 Python 2 中,pickle 和 cPickle 之间存在分歧,这简直令人困惑。