2024-09-23 06:32:45 发布
网友
在bsddb.db.dbInvalidArger错误:(22,'无效参数--/dbs/超级模特.db:意外的文件类型或格式')
此错误是由不兼容的BDB版本(1.85或3+)引起的吗?如果是,我如何检查版本、故障排除和解决此错误?在
是的,这当然可能是由于db文件的旧版本造成的,但是如果您发布生成此异常的代码和完整的回溯,这将有所帮助。在
如果没有此项,是否确定要打开的数据库文件的类型正确?例如,尝试将btree文件当作散列打开会引发您看到的异常:
>>> import bsddb >>> bt = bsddb.btopen('bt') >>> bt.close() >>> bsddb.hashopen('bt') Traceback (most recent call last): File "<stdin>", line 1, in ? File "/usr/lib/python2.4/bsddb/__init__.py", line 298, in hashopen d.open(file, db.DB_HASH, flags, mode) bsddb.db.DBInvalidArgError: (22, 'Invalid argument ./bt: unexpected file type or format')
在*nix中,通常可以使用file命令来确定数据库的类型,例如
file
打开1.85版本的文件失败,出现相同的异常:
>>> db = bsddb.hashopen('/etc/aliases.db') # works, but... >>> db = bsddb.hashopen('cert8.db') Traceback (most recent call last): File "<stdin>", line 1, in ? File "/usr/lib/python2.4/bsddb/__init__.py", line 298, in hashopen d.open(file, db.DB_HASH, flags, mode) bsddb.db.DBInvalidArgError: (22, 'Invalid argument ./cert8.db: unexpected file type or format')
如果需要迁移数据库文件,应该查看bdb发行版附带的db_dump、db_dump185和{}实用程序。在
db_dump
db_dump185
是的,这当然可能是由于db文件的旧版本造成的,但是如果您发布生成此异常的代码和完整的回溯,这将有所帮助。在
如果没有此项,是否确定要打开的数据库文件的类型正确?例如,尝试将btree文件当作散列打开会引发您看到的异常:
在*nix中,通常可以使用
^{pr2}$file
命令来确定数据库的类型,例如打开1.85版本的文件失败,出现相同的异常:
如果需要迁移数据库文件,应该查看bdb发行版附带的}实用程序。在
db_dump
、db_dump185
和{相关问题 更多 >
编程相关推荐