Częstym wzorcem w Pythonie 2.x jest posiadanie jednej wersji modułu zaimplementowanej w czystym Pythonie, z opcjonalną akcelerowaną wersją zaimplementowaną jako rozszerzenie C; na przykład marynowane i cPikluj. To nakłada ciężar importowania wersji przyspieszonej i poleganie na czystej wersji Pythona na każdym użytkowniku tych modułów. W Python 3.0 wersje przyspieszone są uważane za szczegóły implementacji czystych wersji Python. Użytkownicy powinni zawsze importować wersję standardową, która próbuje zaimportować wersję przyspieszoną i wraca do czystej wersji Pythona. Para pikle / c Pikle otrzymała to leczenie.
pip
?pickle
tylko. Wewnętrznie użyje,cpickle
jeśli jest dostępna. Zobacz docs.python.org/3.1/whatsnew/3.0.html#library-changesOdpowiedzi:
W
cPickle
Pythonie 3 nie ma :- Źródło .
źródło
W python3.x
cPickle
zmienił się zcPickle
na_pickle
. Dlatego w python3.x możesz wykonać następujące czynności, jeśli chcesz użyćcPickle
:Jednak w Pythonie 3.x łatwiej jest po prostu użyć marynaty.
Nie musisz niczego instalować. Jeśli coś wymaga
cPickle
w Pythonie 3.x, to prawdopodobnie jest to błąd.źródło
import six; from six.moves import cPickle as pickle
jak opisano tutaj .