4

在带有开发人员工具的 Mac OS X 10.5 (Leopard) 上的默认 Python 安装上执行以下操作:

noel ~ : python

Python 2.5.1 (r251:54863, Jan 13 2009, 10:26:13) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import bsddb
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/bsddb/__init__.py", line 51, in <module>
import _bsddb
ImportError: No module named _bsddb

不错吧?如何在不放弃和安装/配置/维护我自己的 Python 包的情况下按照TMNC 的建议或使用 MacPorts 等来解决这个问题?

编辑

我通过 MacPorts 安装 Python2.4 和 BSDDB 解决了这个问题。

我的问题仍然存在:为什么默认安装被破坏了,是否可以修复它。

4

5 回答 5

6

按照http://marc-abramowitz.com/archives/2007/11/28/hacking-os-xs-python-dbhash-and-bsddb-modules-to-work/上的说明进行操作。

于 2009-05-02T03:59:58.420 回答
2

该补丁对我不起作用,我不得不替换 /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 中的 bsddb 文件夹

使用 bsddb3:

/usr/local/lib/python2.7/site-packages/bsddb3

确保备份 bsddb 文件夹以防万一。

于 2014-06-23T04:28:28.960 回答
2

这种痛苦在 OSX 10.8 上仍然存在。我无法使用 macports py-bsddb3 将 bsddb3 安装到 virtualenv 中。非常简单并且有效的是:

  • 从 macports 安装 db53
  • 下载并解压 bsddb3 源代码 ( https://pypi.python.org/pypi/bsddb3/6.1.0 )
  • sudo python setup.py –berkeley-db-incdir=/opt/local/include/db53 –berkeley-db-libdir=/opt/local/lib/db53 install
于 2014-08-17T11:10:12.693 回答
0

我发现的一个解决方案是安装 ActivePython,挖掘它的库(位于 /Library/Frameworks/Python.framework/Versions/....您的版本在这里..../lib)并复制并粘贴_bsddb.so文件进入我的 OS X 10.6 本机 python 2.6 安装目录(/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/)。

这解决了丢失的 _bsddb 问题,使我在本机 python 安装中使用了 bsddb 的工作版本。然后,我刚刚卸载了 ActivePython(此处的说明

于 2011-04-16T15:18:45.547 回答
0

我遇到的错误是“没有名为 _bsddb 的模块”。事实证明我不需要升级我的 bsddb。我正在使用在 Windows 中创建的 .pkl 文件。在重命名 pkl 文件后,Mac OSX Python 重新创建了一个新的 .pkl.db 文件,现在它可以完美运行了。

于 2013-06-12T19:28:54.530 回答