在似乎只安装了dbm.dumb的机器上,使用dbm.ndbm/Berkeley DB打开序列化Python搁置

在似乎只安装了dbm.dumb的机器上,使用dbm.ndbm/Berkeley DB打开序列化Python搁置,python,database,berkeley-db,shelve,dbm,Python,Database,Berkeley Db,Shelve,Dbm,我正在使用一个生成序列化Python工具架的软件包 在生成书架的远程机器上,我可以打开它们并完美地处理它们。 但是,当我在本地机器上复制它们时,它们将无法再打开 我将问题追溯到dbm子模块()。 在远程上,在搁置(格式:data.db)上强制转换dbm.whichdb()时,输出为“dbm.ndbm”,因此似乎安装了ndbm,我认为可能使用了第三方Oracle Berkeley db,这是我从dbm库的init.py文件中读取的源代码(因为数据格式是.db而不是.pag.dir): 在我的本地计

我正在使用一个生成序列化Python工具架的软件包

在生成书架的远程机器上,我可以打开它们并完美地处理它们。 但是,当我在本地机器上复制它们时,它们将无法再打开

我将问题追溯到dbm子模块()。 在远程上,在搁置(格式:data.db)上强制转换dbm.whichdb()时,输出为“dbm.ndbm”,因此似乎安装了ndbm,我认为可能使用了第三方Oracle Berkeley db,这是我从dbm库的init.py文件中读取的源代码(因为数据格式是.db而不是.pag.dir):

在我的本地计算机上,运行相同的代码会生成三个文件,data.bak、data.dat和data.dir。对它们调用dbm.whichdb()会产生“dbm.dumb”。 对从远程复制的文件强制转换dbm.whichdb()会产生“None”,这意味着根据文档,数据库不可读或已损坏

我怀疑我缺少打开这些数据库的东西

在dbm库中,dumb.py文件中充满了内容,然而,ndbm.py只显示

"""Provide the _dbm module as a dbm submodule."""

from _dbm import *
我认为应该有其他东西可以使用ndbm子模块


如何打开这些ndbm/Berkeley DB数据库?

您找到解决方案了吗?我遇到了同样的问题。你找到解决方案了吗?我也遇到了同样的问题。
"""Provide the _dbm module as a dbm submodule."""

from _dbm import *