2009-08-20 8 views
1

nicht installieren Ich installierte Python 2.6 auf meinem Mac (die mit 2.5 geliefert wird, und ich bin verrückt in der Arbeit mit 2.6) Alles wurde auf /Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/ installiert. Jetzt möchte ich die Python BerkeleyDB Modul installieren, aber es geht Syntaxfehler während des Build:Kann Python berkeleydb Zugriff auf osx

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 hilft nicht.

+0

Bauen Sie BerkelyDB von einem Configure-Skript? –

+0

Ich kompilierte Berkeleydb von konfigurieren, als heruntergeladene Form Oracle. –

+0

Sorry, ich meinte das Modul. Welche zu konfigurierenden Argumente haben Sie verwendet? Ich denke, Sie müssen den Include-Pfad ändern, d. H. Etwas wie '--with-python = Bibliothek/Frameworks/Python.framework/Versions/2.6/include/python2.6 /'. –

Antwort

0

Es kann Ihnen viel Zeit sparen, Python mit fink oder macports neu zu installieren, dann erhalten Sie das Berkley-Paket von beiden.

+0

macports ist umfassender, ich erwähne nur fink, also spiele ich keine Favoriten. –

2

Der standardmäßige Python 2.6-Installer für OS X von python.org enthält bsddb. Warum eigene bauen?

0

Versuchen:

easy_install bsddb3

0

Hier ist, was ich für python2.5 easy_install tat es nicht für mich

# 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 
0

ich ein ähnliches Problem lxml Installation hatte nicht funktioniert. Versuchen Sie, diese für BerkeleyDB:

sudo env ARCHFLAGS="-arch i386 -arch x86_64" easy_install bsddb3 
0

Für Mavericks/Yosemite (können neuere Versionen verwenden wie DB53 auch):

sudo port install db51 
sudo ln -sf /opt/local/include/db51/ /opt/local/lib/db51/include 
sudo ln -sf /opt/local/lib/db51/ /opt/local/lib/db51/lib 
sudo BERKELEYDB_DIR=/opt/local/lib/db51 ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future easy_install bsddb3