[Spambayes] Spambayes can't find bsddb
rick at drinknow.net
Sat Mar 27 14:49:25 EST 2004
You nailed the OS X issue. Thanks.
On my Linux box I switched to pickle for now, but I'll rebuild Python -
I think I did install the Berkeley db after building Python.
Skip Montanaro wrote:
> Rick> When I run sb_imapfilter on my Powerbook (OS X 10.3.3, Python 2.3)
> Rick> I get:
> Rick> ImportError: No module named _bsddb
> Rick> Exception exceptions.AttributeError: "'MessageInfoDB' object has no
> Rick> attribute 'db'" in <bound method MessageInfoDB.__del__ of
> Rick> <spambayes.message.MessageInfoDB object at 0x4e7d30>> ignored
>On your Mac OSX box does your Python installation have a _bsddb.so file in
>the lib-dynload directory? If not, it's probably because whatever Berkeley
>DB is installed is not recent enough so the Python build process refused to
>build it. The version which comes in /usr/lib is the old 1.85 version. On
>my system I get it from the Fink project. If you do have a
>lib-dynload/_bsddb.so file, was does otool tell you about its library
> % otool -L /Users/skip/local/lib/python2.4/lib-dynload/_bsddb.so
> /sw/lib/libdb-3.3.dylib (compatibility version 3.3.0, current version 3.3.11)
> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 63.0.0)
> Rick> You do not have a dbm module available to use. You need to
> Rick> either use a pickle (see the FAQ), use Python 2.3 (or above),
> Rick> or install a dbm module such as bsddb (see
> Rick> http://sf.net/projects/pybsddb).
> Rick> Now, the sb FAQ asserts I should have all of this with Python 2.3,
> Rick> so I assume it's a pathing error. The problem is that I don't know
> Rick> that much about Python environment variables. What should I
> Rick> verify/set to ensure that bsddb is found?
> Rick> INcidentally, I manually installed Berkely db 4.2 and pysbddb on
> Rick> my linux box, so I know it's there.
>Did you maybe install it after installing Python? If so, rebuild/reinstall
>Python. The distutils stuff should notice the new Berkeley DB (probably
>installed in /usr/local/BerkeleyDB4.2).
More information about the Spambayes