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.
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.
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 .
pip
?pickle
uniquement. En interne, il utiliseracpickle
si disponible. Voir docs.python.org/3.1/whatsnew/3.0.html#library-changesRéponses:
Il n'y a pas
cPickle
de python 3:- Source .
la source
Sur python3.x
cPickle
a changé decPickle
à_pickle
. Ainsi, dans python3.x, vous pouvez effectuer les opérations suivantes si vous souhaitez utilisercPickle
: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
cPickle
en python 3.x, alors c'est probablement un bogue.la source
import six; from six.moves import cPickle as pickle
comme décrit ici .