GDBM ошибка 22 при выполнении Python полка открыта - PullRequest
0 голосов
/ 07 января 2020

Выполнение простого shelve.open приведет к следующей ошибке:


>>> shelve.open('foo')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.6/shelve.py", line 243, in open
    return DbfilenameShelf(filename, flag, protocol, writeback)
  File "/usr/lib/python3.6/shelve.py", line 227, in __init__
    Shelf.__init__(self, dbm.open(filename, flag), protocol, writeback)
  File "/usr/lib/python3.6/dbm/__init__.py", line 94, in open
    return mod.open(file, flag, mode)
_gdbm.error: [Errno 22] Invalid argument

Я нашел только один связанный результат поиска по этой проблеме: https://github.com/pydanny/cookiecutter-django/issues/1793#issuecomment -440406112

Я получил точно такую ​​же ошибку в среде Vagrant dev. Celery использует dbm для постоянного хранения, которое построено поверх библиотеки gdbm C. Некоторое тестирование показало, что это работает при создании или открытии файлов на собственной файловой системе, но не на смонтированной файловой системе.

Я запускаю это в Vagrant Ubuntu Box в MacOS, так что это имеет смысл. Я также запускаю ту же коробку под Windows 10, и эта проблема не возникает. Любые подсказки для исправления?

...