在 Python 3.3 中打开 Berkeley 1.85 DB 文件
Posted
技术标签:
【中文标题】在 Python 3.3 中打开 Berkeley 1.85 DB 文件【英文标题】:Open a Berkeley 1.85 DB file in Python 3.3 【发布时间】:2013-05-13 13:37:24 【问题描述】:我正在努力将这个系统转换为 Python 3.3。在一端(我现在所在的位置),有一个 Perl 脚本,它生成一个与 Berkeley DB 文件相关联的大型哈希表,其中键是数字,每个键都有一个与之关联的字符串。另一端是另一个 Perl 脚本,它接受用户输入的整数,在 DB 文件中查找该数字,并返回与该数字关联的字符串。
我正在寻找 Berkeley DB 的替代品,因为 Python 的标准库不再正式支持它,但在此之前,我会尽我所能复制这个系统,这样我们就可以继续做我们想做的事情。重新做。但目前的问题是用于制作这些 DB 文件的 Perl 模块将它们制作成 v1.85 格式,而 bsddb3 模块仅支持 v4.x 及更高版本。有什么方法可以让 Python 3.3 处理 Berkeley DB 1.85 文件?
【问题讨论】:
【参考方案1】:你可以find this module in PYPI。
我是通过python 2 docs 找到的(向下滚动到“注释”)。
【讨论】:
不起作用。当我构建模块时,我收到有关分配的警告,并返回从整数创建指针而不进行强制转换,然后当我将 bsddb185 导入脚本时,它会引发 ImportError: /usr/local/lib/python3.3/site-packages/bsddb185 .so:未定义符号“PyString_FromStringAndSize” 你是否安装了python3-dev
(假设 ubuntu linux -- 目标是什么平台)?
以上 PYPI 链接中的模块源是 Python 2,而不是 3。它可以移植,但我对移植 Python 模块一无所知,而且我认为我没有时间学习如何解决这个特定问题。以上是关于在 Python 3.3 中打开 Berkeley 1.85 DB 文件的主要内容,如果未能解决你的问题,请参考以下文章
berkeley db java edition怎样存储数据库?
使用 Berkeley DB(bsddb 模块)、Python