Comment installer cPickle sur Python 3.4?

46

J'ai essayé sudo apt-get install cPickleet python3.4-cPicklemais ça ne marche pas.

vincet
la source
2
Je suppose que vous installez un module python avec pip?
Rinzwind
pouvez-vous me donner la commande s'il vous plaît
vincet
8
Autant que je sache, en python 3, vous utilisez pickleuniquement. En interne, il utilisera cpicklesi disponible. Voir docs.python.org/3.1/whatsnew/3.0.html#library-changes
cshubhamrao

Réponses:

61

Il n'y a pas cPicklede python 3:

Un modèle courant dans Python 2.x consiste à avoir une version d'un module implémentée en Python pur, avec une version accélérée facultative implémentée en tant qu'extension C; par exemple, pickle et cPickle. Cela alourdit la tâche de l'importation de la version accélérée et de la version Python pure sur chaque utilisateur de ces modules. Dans Python 3.0, les versions accélérées sont considérées comme des détails d'implémentation des versions Python pures. Les utilisateurs doivent toujours importer la version standard, qui tente d'importer la version accélérée et revient à la version pure Python. La paire cornichon / cPickle a reçu ce traitement.

- Source .

Paul Price
la source
82

Sur python3.x cPicklea changé de cPickleà _pickle. Ainsi, dans python3.x, vous pouvez effectuer les opérations suivantes si vous souhaitez utiliser cPickle:

import _pickle as cPickle

Cependant, dans Python 3.x, il est plus facile d’utiliser pickle.

Pas besoin d'installer quoi que ce soit. Si quelque chose nécessite cPickleen python 3.x, alors c'est probablement un bogue.

Tshilidzi Mudau
la source
4
Pour maintenir également la compatibilité avec Python 2.X, vous pouvez utiliser six et importer avec: import six; from six.moves import cPickle as picklecomme décrit ici .
Matt Pitkin
@MattPitkin link rot, web.archive.org/web/20171008200414/http://… works.
Yaroslav Nikitenko
Le lien mis à jour est ici python-3-for-scientists.readthedocs.io/en/latest/…
Matt Pitkin