无法在osx上安装python berkeleydb访问

时间:2009-08-20 02:28:03

标签: python macos

我在我的mac上安装了python 2.6(它附带2.5,我在使用2.6时疯狂)所有内容都安装在/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/上。现在我想安装python BerkeleyDB模块,但它在构建期间出现语法错误:

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

谷歌没有帮助。

6 个答案:

答案 0 :(得分:2)

来自python.org的OS X的标准Python 2.6安装程序包括bsddb。为什么建立自己的?

答案 1 :(得分:0)

使用fink或macports重新安装python可以节省大量时间,然后从其中获取berkley包。

答案 2 :(得分:0)

尝试:

easy_install bsddb3

答案 3 :(得分:0)

这是我为python2.5做的事easy_install对我不起作用

# 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

答案 4 :(得分:0)

我在安装lxml时遇到了类似的问题。试试这个berkeleydb:

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

答案 5 :(得分:0)

对于Mavericks / Yosemite(也可以使用像db53这样的新版本):

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