1

bsddb を使用して Python で open を呼び出そうとしているだけですが、次のエラーが発生します。何か案が?そうでない場合、デバッグ用のより詳細なエラー メッセージを取得する方法はありますか?詳細情報を取得すると、おそらくもう少し調査するのに役立ちます。詳細のないエラー コードは、確かにあまり役に立ちません。

DBInvalidArgError: (22、「無効な引数」)

ソース:

import bsddb, bsddb.db

...
try:
    e = bsddb.db.DBEnv()
    e.open('/mydir', bsddb.db.DB_CREATE | bsddb.db.DB_INIT_MPOOL)
...

追加情報: /mydir には DB_CONFIG ファイルがあります:

set_data_dir /mydir/current_data
# 128MB
set_cachesize 0 134217728 1

更新: bsddb および bsddb.db バージョンと関係があるため、ここで何かに取り組んでいると思います:

> $python
> Python 2.5...
> import bsddb, bsddb.db
> print bsddb.__version__, bsddb.db.version()
> 4.4.5 (4, 2, 52)
> bsddb.db.DBEnv().open('/mydir/')
> bsddb.db.DBInvalidArgError: (22, 'Invalid argument')

> $python2.6
> Python 2.6.6...
> import bsddb, bsddb.db
> print bsddb.__version__, bsddb.db.version()
> 4.7.3 (4, 7, 25)
> bsddb.db.DBEnv().open('/mydir/')
> 

python2.6で実行してもエラーはありません。

4

1 に答える 1