【问题标题】:gdbm error 22 when performing Python shelve open执行 Python 搁置打开时出现 gdbm 错误 22
【发布时间】:2020-01-07 06:33:25
【问题描述】:

做一个简单的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 开发环境中遇到了完全相同的错误。 Celery 使用 dbm 进行持久存储,它建立在 gdbm C 库之上。一些测试表明,这在本地文件系统上创建或打开文件时有效,但在已挂载的文件系统上无效。

我在 MacOS 中的 Vagrant Ubuntu 机器下运行它,所以这很有意义。我也在 Windows 10 下运行了同一个盒子,这个问题没有出现。有修复的线索吗?

【问题讨论】:

    标签: python-3.x shelve gdbm


    【解决方案1】:

    我遇到了同样的问题,在看到这篇文章之前无法在网上找到任何帮助

    https://github.com/we45/ThreatPlaybook/issues/11

    创建一个新的虚拟环境对我有用

    【讨论】:

      猜你喜欢
      • 2016-11-03
      • 1970-01-01
      • 2016-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-29
      • 1970-01-01
      相关资源
      最近更新 更多