我只是尝试使用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运行它,就不会出错。
发布于 2015-01-09 18:00:04
是的,BerkeleyDB过去常在版本不匹配时返回EINVAL。
最近(像去年的5+ ),BerkeleyDB返回DB_VERSION_MISMATCH。
https://stackoverflow.com/questions/15958917
复制相似问题