Lal*_*iya 7 shelve dbm python-3.6
我在 Windows 机器上安装了 python3.6。打开 my.db 文件时出现以下错误。
my.db 文件由我的程序在 python3.6 的 ubuntu16.04 中创建,使用搁置模块。
In [1]: import shelve
In [2]: db = shelve.open("etc/my.db")
---------------------------------------------------------------------------
error Traceback (most recent call last)
<ipython-input-2-b4828c8ee6e1> in <module>()
----> 1 db = shelve.open("etc/my.db")
c:\Python36\Lib\shelve.py in open(filename, flag, protocol, writeback)
241 """
242
--> 243 return DbfilenameShelf(filename, flag, protocol, writeback)
c:\Python36\Lib\shelve.py in __init__(self, filename, flag, protocol, writeback)
225 def __init__(self, filename, flag='c', protocol=None, writeback=False):
226 import dbm
--> 227 Shelf.__init__(self, dbm.open(filename, flag), protocol, writeback)
228
229
c:\Python36\Lib\dbm\__init__.py in open(file, flag, mode)
89 elif result not in _modules:
90 raise error[0]("db type is {0}, but the module is not "
---> 91 "available".format(result))
92 else:
93 mod = _modules[result]
error: db type is dbm.gnu, but the module is not available
Run Code Online (Sandbox Code Playgroud)
请帮忙,如何在 Windows 中安装缺少的模块。
正如@alexander-p提到的,问题可能是__pycache__在源代码中的文件夹上。
就我而言,我确实更换了venv一个具有相同名称但较新版本的 Python (~3.8~ \xe2\x86\x92 3.9) 的新文件夹替换了具有虚拟环境的文件夹,并同时使用了 PyCharm (使用 venv 设置)。
删除所有 Python 缓存(并重新启动 PyCharm 以防万一)解决了问题。
\n您可以通过以下方式执行此操作:
\n$ find . -name __pycache__ | xargs rm -Rv\nRun Code Online (Sandbox Code Playgroud)\n如果venv文件夹位于放置源代码的同一文件夹内,最好执行:
$ find . -name __pycache__ | grep -v venv | xargs rm -Rv\nRun Code Online (Sandbox Code Playgroud)\n所以里面的缓存venv/并没有被删除。
| 归档时间: |
|
| 查看次数: |
2262 次 |
| 最近记录: |