tags:

views:

133

answers:

4

I installed python 2.6 on my mac (which ships with 2.5, and I am going crazy in working with 2.6) Everything has been installed on /Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/. Now I want to install the python BerkeleyDB module, but it goes syntax error during the build:

creating build/temp.macosx-10.3-fat-2.6/extsrc
gcc -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -DPYBSDDB_STANDALONE=1 -I~/include -I/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c extsrc/_bsddb.c -o build/temp.macosx-10.3-fat-2.6/extsrc/_bsddb.o
extsrc/_bsddb.c:232: error: syntax error before 'DB_ENV'
extsrc/_bsddb.c:232: warning: no semicolon at end of struct or union
extsrc/_bsddb.c:239: error: syntax error before '}' token
extsrc/_bsddb.c:239: warning: data definition has no type or storage class
extsrc/_bsddb.c:245: error: syntax error before 'DBEnvObject'
extsrc/_bsddb.c:245: warning: no semicolon at end of struct or union
extsrc/_bsddb.c:258: error: syntax error before '}' token
extsrc/_bsddb.c:258: warning: data definition has no type or storage class
<and so on>
extsrc/_bsddb.c:5915: error: 'DB_OLD_VERSION' undeclared (first use in this function)
extsrc/_bsddb.c:5916: error: 'DB_RUNRECOVERY' undeclared (first use in this function)
extsrc/_bsddb.c:5917: error: 'DB_VERIFY_BAD' undeclared (first use in this function)
lipo: can't figure out the architecture type of: /var/folders/Ye/YeXcn-oIE7ybm-TS4yB8c++++TQ/-Tmp-//cclJF2Xy.out

Google does not help.

A: 

It may save you a lot of time to reinstall python using fink or macports, then get the berkley package from either.

Dana the Sane
macports is more comprehensive, I just mention fink so I'm not playing favorites.
Dana the Sane
+2  A: 

The standard Python 2.6 installer for OS X from python.org includes bsddb. Why build your own?

Ned Deily
A: 

Try:

easy_install bsddb3

Pydroid
A: 

Here's what I did for python2.5 easy_install didn't work for me

# get berkeley db
sudo port install db44

# download and untar bsddb3-4.8.1 and cd to the directory
sudo python setup.py --berkeley-db-incdir=/opt/local/include/db44 --berkeley-db-libdir=/opt/local/lib/db44 build

# test program test.py ran but don't know what it did
python test.py

# install
sudo python setup.py --berkeley-db-incdir=/opt/local/include/db44 --berkeley-db-libdir=/opt/local/lib/db44 install

# import as needed
gparker