[Python-Dev] bsddb alternative (was Re: [issue3769] Deprecate bsddb for removal in 3.0)

Kevin Teague kevin at bud.ca
Fri Sep 5 12:01:41 CEST 2008


On Sep 4, 2008, at 8:10 AM, C. Titus Brown wrote:
>
> I have to say I've never had problems with a stock install of Python  
> on
> either Mac OS X or Windows (shockingly enough :).  I think this is  
> good
> advice for applications that rely on external libraries, but I just
> don't see any problems with relying on Python 2.5 to contain all the
> things that normally come with Python 2.5.

There can be subtle differences between a "stock" Python and the  
system Python on Mac OS X 10.5. For example, Mac OS X compiles against  
EditLine instead of GNU Readline. From "man python" on Mac OS X:

"""
The  Python  inteterpreter supports editing of the current input line  
and history substitution, similar to facilities found in the Korn  
shell and the GNU Bash shell. However, rather than being implemented  
using the GNU Readline library, this Python interpreter uses the BSD  
EditLine library editline(3) with a GNU  Readline emulation layer.
...
For  example, the rlcompleter module, which defines a completion  
function for the readline modules, works correctly with the EditLine  
libraries, but needs to be initialized somewhat differently:
...
"""

Fairly rare that you'd trip over this minor difference though -  
EditLine is more a problem on Mac OS X when trying to compile your own  
Python, since you need to install and link against GNU Readline.

However, all does not seem to be right with the bsddb module on the  
system Python 2.5 on Mac OS X 10.5:

$ /usr/bin/python
Python 2.5.1 (r251:54863, Jan 17 2008, 19:35:17)
[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
 >>>



More information about the Python-Dev mailing list