51

I tried sudo apt-get install cPickle and python3.4-cPickle but it doesn't work.

3

2 Answers 2

77

There is no cPickle in python 3:

A common pattern in Python 2.x is to have one version of a module implemented in pure Python, with an optional accelerated version implemented as a C extension; for example, pickle and cPickle. This places the burden of importing the accelerated version and falling back on the pure Python version on each user of these modules. In Python 3.0, the accelerated versions are considered implementation details of the pure Python versions. Users should always import the standard version, which attempts to import the accelerated version and falls back to the pure Python version. The pickle / cPickle pair received this treatment.

-Source.

3
  • "the accelerated versions are considered implementation details of the pure Python versions": what does this exactly mean?
    – Basj
    Feb 4, 2020 at 12:57
  • 1
    @Basj: It means you should import pickle, not import cPickle.
    – Paul Price
    Feb 4, 2020 at 21:43
  • 5
    @basj, "Implementation detail" means something that should be hidden from us users. We just want the pickle functionality and should not care if its implemented in python or c. So, it means don't make us understand...python just do the best thing. May 6, 2020 at 20:40
5

From the pickle module documentation:

The pickle module has an transparent optimizer (_pickle) written in C. It is used whenever available. Otherwise the pure Python implementation is used.

In python3 use:

import _pickle as cPickle
3
  • Have I misunderstood this? python3.8 -m pip install pickle. Output: ERROR: Could not find a version that satisfies the requirement pickle (from versions: none) ERROR: No matching distribution found for pickle. How should I install it then? Sep 1, 2021 at 13:07
  • 1
    @questionto42standswithUkraine have you tried just importing pickle? It is a built-in so you shouldn't need to install it at all.
    – Kraigolas
    Jul 27, 2022 at 17:19
  • Built-in sounds good, might be that I have not checked it. Jul 27, 2022 at 18:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .