Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中打开berkeley db时出现问题_Python_Database_Berkeley Db - Fatal编程技术网

在python中打开berkeley db时出现问题

在python中打开berkeley db时出现问题,python,database,berkeley-db,Python,Database,Berkeley Db,我在使用bdtables在python中打开berkeley db时遇到问题。由于我用来访问数据库的库使用bdtables,所以我需要它工作 问题似乎是我试图打开的db环境(我得到了一个要打开的数据库副本)是版本4.4,而libdb是版本4.6。我使用bsddb.dbtables.bsdTableDB([dbname],[folder])得到以下错误: 但是,bsddb.btopen([dbname])可以工作 我还尝试安装了db4.4-util、db4.5-util和db4.6-util。尝试

我在使用bdtables在python中打开berkeley db时遇到问题。由于我用来访问数据库的库使用bdtables,所以我需要它工作

问题似乎是我试图打开的db环境(我得到了一个要打开的数据库副本)是版本4.4,而libdb是版本4.6。我使用bsddb.dbtables.bsdTableDB([dbname],[folder])得到以下错误:

但是,bsddb.btopen([dbname])可以工作

我还尝试安装了db4.4-util、db4.5-util和db4.6-util。尝试在以下位置使用db4.6_验证结果:

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_验证结果时,计算机只是挂起,没有发生任何事情


最后,如果我在数据库上运行db4.4_recover,那就行了。但是,之后我在python中遇到了以下错误“没有这样的文件或目录”。

我认为答案应该放在“答案”部分,而不是作为问题的附录,因为这将问题标记为在各种问题列表页面上有答案。我会帮你做的,但是,如果你也有时间做,请在我的答案上留下评论,这样我就可以删除它

引用“问题中的答案”:

验证了这个问题的所有内容,我最终解决了这个问题。“没有这样的文件或目录”是由于某些_db.XXX文件丢失造成的。使用

bsddb.dbtables.bsdTableDB([dbname],[folder], create=1)
在db4.4_recover之后,创建了这些文件,现在一切正常


不过,这是一个有点模糊的问题,最初很难弄清楚。但由于这个问题,我得到了我需要的工具。如果将来有人遇到同样的问题,我会把它贴在这里,然后在stackoverflow.com上验证这个问题的所有内容,我最终解决了这个问题。“没有这样的文件或目录”是由于某些_db.XXX文件丢失造成的。在db4.4_recover之后,使用bsddb.dbtables.bsdTableDB([dbname],[folder],create=1)创建这些文件,现在一切正常


不过,这是一个有点模糊的问题,最初很难弄清楚。但是由于从CLI中检查Berkeley DB文件的问题,我得到了所需的工具。如果将来有人遇到同样的问题,我会把它贴在这里,并最终出现在stackoverflow.com上

我自己也贴了答案不。很遗憾我不能接受自己的答案,我想这是我最后回答自己的第二个问题:)。也许是时候删除这个了?
bsddb.dbtables.bsdTableDB([dbname],[folder], create=1)