1

我从 python 3.6 升级到 python 3.9,现在现有的 gdbm 文件没有被读取。出现以下错误,有什么办法可以解决这个问题吗?

平台:CentOS Linux release 7.9.2009 (Core)

蟒蛇:3.9.9

使用 Python 3.6 版本,我首先使用如下方式创建了文件:

self.def_id_seq_map_db = dbm.open(str(self.datapath / "def_id_seq_map"), 'c')
        self.def_id_seq_map = shelve.Shelf(self.def_id_seq_map_db)

我尝试使用 Python 3.9 阅读时出现的错误:

  File "/usr/local/lib/python3.9/dbm/__init__.py", line 91, in open
    raise error[0]("db type is {0}, but the module is not "
dbm.error: db type is dbm.gnu, but the module is not available
4

1 回答 1

1

看来您是从源代码安装 Python 的。您的系统上可能没有安装 gdbm-devel。

我会尝试什么:

  • 安装 gdbm-devel 并配置/安装 python ./configure --enable-optimizations && \ make install
  • 如果它不起作用,请将以下修饰符添加到 ./configure 脚本:--with-dbmliborder=gdbm:ndbm
于 2022-01-18T15:53:35.567 回答