Ja, dies könnte sicherlich auf ältere Versionen der db-Datei zurückzuführen sein, aber es würde helfen, wenn Sie den Code, der diese Ausnahme und die vollständige Traceback generiert hat, gepostet haben.
In Ermangelung dieser, sind Sie sicher, dass die Datenbankdatei, die Sie öffnen, vom richtigen Typ ist? Um zum Beispiel einer btree Datei zu öffnen versucht, als ob es ein Hash wirft die Ausnahme, die Sie sehen:
>>> 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')
In * nichts können Sie in der Regel die Art der db bestimmen, indem die file
Befehle, z.B.
$ file /etc/aliases.db cert8.db
/etc/aliases.db: Berkeley DB (Hash, version 8, native byte-order)
cert8.db: Berkeley DB 1.85 (Hash, version 2, native byte-order)
eine 1.85-Version Datei Öffnen nicht mit der gleichen Ausnahme:
>>> 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')
Wenn Sie die Datenbankdateien migrieren müssen, Sie an den db_dump
, db_dump185
und db_load
Dienstprogramme aussehen sollten, die mit dem BDB kommen Verbreitung.
Es wäre hilfreich, wenn Sie Code hinzufügen könnten, der den Kontext dieses Fehlers zeigt. – Shirkrin