bdtables を使用して python で berkeley db を開く際に問題があります。bdtables は、データベースへのアクセスに使用しているライブラリで使用されているため、機能する必要があります。
問題は、私が開こうとしている db 環境 (開こうとしているデータベースのコピーを取得した) がバージョン 4.4 であるのに対し、libdb はバージョン 4.6 であることです。bsddb.dbtables.bsdTableDB([dbname],[folder]) を使用すると、次のエラーが発生します。
(-30972, "DB_VERSION_MISMATCH: Database environment version mismatch -- Program version 4.6 doesn't match environment version 4.4")
ただし、bsddb.btopen([dbname]) は機能します。
また、db4.4-util、db4.5-util、および db4.6-util をインストールしようとしました。db4.6_verify を使用しようとすると、次の結果になります。
db4.6_verify: Program version 4.6 doesn't match environment version 4.4
db4.6_verify: DB_ENV->open: DB_VERSION_MISMATCH: Database environment version mismatchs
db4.4_verify を実行すると、コンピューターがハングするだけで、何も起こりません。
最後に、データベースで db4.4_recover を実行すると、うまくいきます。ただし、その後、Pythonで「そのようなファイルまたはディレクトリはありません」というエラーが表示されます。