Как я могу узнать, использует ли Python 3 cPickle или Pickle? - PullRequest
1 голос
/ 28 марта 2019

Я видел эти два ответа о том, что Pickle и cPickle разобрались автоматически с помощью python 3, прозрачно для пользователя:

Как я могу узнать, использует ли Python 3 быструю версию (cPickle) или нет?Я хочу заставить его использовать cPickle.Мой главный интерес не только в скорости, но и в более коротком размере файлов, так как я создаю файлы, размер которых превышает 1 ГБ.

1 Ответ

5 голосов
/ 28 марта 2019

Если вы не строите свой двоичный файл Python из исходного кода, вы почти наверняка используете расширение C.

Однако, если вы уверены, проверьте, можно ли импортировать модуль _pickle:

>>> import _pickle

Модуль pickle импортирует _pickle и только в случае сбоя с ImportError будет использовать реализацию на чистом Python.

Просто чтобы быть явным: то, что было названо cPickle в Python 2, было переименовано в _pickle и импортировано прозрачно, вам не нужно ничего делать явным образом, чтобы использовать его.То, что в Python 2 был разрыв между pickle и cPickle, было просто запутанным.

...