python3.9 的 gdbm 无法打开由 python 3.6 的 gdbm 创建的文件
gdbm with python3.9 unable to open a file created by gdbm with python 3.6
我从 python 3.6 升级到 python 3.9,现在无法读取现有的 gdbm 文件。抛出以下错误,有什么办法可以解决这个问题吗?
平台:CentOS Linux 7.9.2009 版(核心)
Python: 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
您似乎从源代码安装了 Python。您的系统上可能没有安装 gdbm-devel。
我会尝试什么:
- 安装 gdbm-devel 并使用
./configure --enable-optimizations && \ make install
配置/安装 python
- 如果不起作用,请将以下修饰符添加到 ./configure 脚本中:
--with-dbmliborder=gdbm:ndbm
我从 python 3.6 升级到 python 3.9,现在无法读取现有的 gdbm 文件。抛出以下错误,有什么办法可以解决这个问题吗?
平台:CentOS Linux 7.9.2009 版(核心)
Python: 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
您似乎从源代码安装了 Python。您的系统上可能没有安装 gdbm-devel。
我会尝试什么:
- 安装 gdbm-devel 并使用
./configure --enable-optimizations && \ make install
配置/安装 python
- 如果不起作用,请将以下修饰符添加到 ./configure 脚本中:
--with-dbmliborder=gdbm:ndbm