Un patrón común en Python 2.x es tener una versión de un módulo implementada en Python puro, con una versión acelerada opcional implementada como una extensión C; por ejemplo, pickle y cPickle. Esto coloca la carga de importar la versión acelerada y recurrir a la versión pura de Python en cada usuario de estos módulos. En Python 3.0, las versiones aceleradas se consideran detalles de implementación de las versiones puras de Python. Los usuarios siempre deben importar la versión estándar, que intenta importar la versión acelerada y recurre a la versión pura de Python. El par pickle / cPickle recibió este tratamiento.
Para mantener también la compatibilidad con python 2.X, puede usar seis e importar con: import six; from six.moves import cPickle as picklecomo se describe aquí .
pip
?pickle
solo se usa . Internamente se usarácpickle
si está disponible. Ver docs.python.org/3.1/whatsnew/3.0.html#library-changesRespuestas:
No hay
cPickle
en Python 3:- Fuente .
fuente
En python3.x
cPickle
ha cambiado decPickle
a_pickle
. Por lo tanto, en python3.x, puede hacer lo siguiente si desea usarcPickle
:Sin embargo, en Python 3.x, es más fácil usar pickle.
No es necesario instalar nada. Si algo requiere
cPickle
en python 3.x, entonces probablemente sea un error.fuente
import six; from six.moves import cPickle as pickle
como se describe aquí .