[执行Python搁置打开时,gdbm错误22

问题描述 投票:2回答:1

执行简单的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个回答
0
投票

我遇到了同样的问题,直到遇到这篇文章时才在线找到任何帮助

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

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

© www.soinside.com 2019 - 2024. All rights reserved.