полка не синхронизирует c с диском перед закрытием - PullRequest
0 голосов
/ 17 июня 2020

После изменения версии python с 3.5 на 3.7, shelve больше не записывает на диск при вызове метода syn c. Однако, когда я использую python 3.5, это так.

Я также заметил, что в python 3.7 расширение 'db' добавлено к файлу базы данных полки.

Кто-нибудь знает, что причина этого и есть ли обходные пути?

1 Ответ

0 голосов
/ 17 июня 2020

Оказывается, мне не хватало пакета python3 .7-gdbm (это Ubuntu Xenial Server).

Его можно установить с помощью apt-get:

sudo apt-get install python3.7-gdbm

После установки пакета gdbm python начнет сохранять полку как GNU dbm вместо Berkeley DB:

$ file *
shelve_obj_berkley:            Berkeley DB (Hash, version 9, native byte-order)
shelve_obj_gdbm:               GNU dbm 1.x or ndbm database, little endian, old
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...