Um padrão comum no Python 2.x é ter uma versão de um módulo implementada no Python puro, com uma versão acelerada opcional implementada como uma extensão C; por exemplo, pickle e cPickle. Isso coloca o ônus de importar a versão acelerada e recair na versão pura do Python em cada usuário desses módulos. No Python 3.0, as versões aceleradas são consideradas detalhes de implementação das versões puras do Python. Os usuários sempre devem importar a versão padrão, que tenta importar a versão acelerada e volta para a versão pura do Python. O par pickle / cPickle recebeu esse tratamento.
Para também manter a compatibilidade com o python 2.X, você pode usar seis e importar com: import six; from six.moves import cPickle as pickleconforme descrito aqui .
pip
?pickle
apenas. Internamente, ele será usado,cpickle
se disponível. Veja docs.python.org/3.1/whatsnew/3.0.html#library-changesRespostas:
Não existe
cPickle
no python 3:- Fonte .
fonte
No python3.x
cPickle
foi alterado decPickle
para_pickle
. Assim, em python3.x, você pode fazer o seguinte se quiser usarcPickle
:No entanto, no Python 3.x, é mais fácil usar pickle.
Não há necessidade de instalar nada. Se algo exigir
cPickle
no python 3.x, provavelmente isso é um bug.fonte
import six; from six.moves import cPickle as pickle
conforme descrito aqui .