如何修复Mac OS X 10.5 Leopard中Python默认包的损坏BSDDB安装?

4 投票
5 回答
15739 浏览
提问于 2025-04-15 11:21

在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来绕过这个问题。

我想问的还是那个问题:为什么默认的安装会有问题,能不能修复它呢?

5 个回答

2

在OSX 10.8上,这个问题一直存在。我无法通过macports的py-bsddb3在虚拟环境中安装bsddb3。不过,有一个很简单的方法可以成功安装:

  • 首先,从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
2

这个补丁对我没用,所以我需要把这个bsddb文件夹替换掉,位置在:

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7

我把它换成了这里的bsddb3:

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

记得先备份一下原来的bsddb文件夹,以防万一。

撰写回答