views:

36

answers:

0

Hey guys,

I'm trying to use Tokyo Cabinet in Python via the tokyo-python package. I've installed Cabinet, and the Cabinet development library. However, whenever I try to install tokyo-python with pip or easy_install, I get this ugliness.

matt@amalgam:~/$ bin/pip install tokyo-python
Downloading/unpacking tokyo-python
Downloading tokyo-python-0.6.0.tar.gz (142Kb): 142Kb downloaded
Running setup.py egg_info for package tokyo-python
Installing collected packages: tokyo-python
Running setup.py install for tokyo-python
building 'tokyo.cabinet' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.6 -c src/cabinet.c -o build/temp.linux-x86_64-2.6/src/cabinet.o
In file included from src/cabinet.c:134:
src/TDB.c: In function ‘TDB_metasearch’:
src/TDB.c:1129: warning: implicit declaration of function ‘tctdbmetasearch’
src/TDB.c:1129: warning: assignment makes pointer from integer without a cast
src/cabinet.c: In function ‘init_cabinet’:
src/cabinet.c:294: error: ‘TDBITTOKEN’ undeclared (first use in this function)
src/cabinet.c:294: error: (Each undeclared identifier is reported only once
src/cabinet.c:294: error: for each function it appears in.)
src/cabinet.c:295: error: ‘TDBITQGRAM’ undeclared (first use in this function)
src/cabinet.c:324: error: ‘TDBQCFTSPH’ undeclared (first use in this function)
src/cabinet.c:325: error: ‘TDBQCFTSAND’ undeclared (first use in this function)
src/cabinet.c:326: error: ‘TDBQCFTSOR’ undeclared (first use in this function)
src/cabinet.c:327: error: ‘TDBQCFTSEX’ undeclared (first use in this function)
src/cabinet.c:331: error: ‘TDBMSUNION’ undeclared (first use in this function)
src/cabinet.c:332: error: ‘TDBMSISECT’ undeclared (first use in this function)
src/cabinet.c:333: error: ‘TDBMSDIFF’ undeclared (first use in this function)
error: command 'gcc' failed with exit status 1
Complete output from command /home/matt/bin/python -c "import setuptools; __file__='/home/matt/build/tokyo-python/setup.py'; execfile('/home/matt/build/tokyo-python/setup.py')" install --single-version-externally-managed --record /tmp/pip-ZqvLvm-record/install-record.txt --install-headers /home/matt/include/site/python2.6:
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.6
creating build/lib.linux-x86_64-2.6/tokyo
copying tokyo/__init__.py -> build/lib.linux-x86_64-2.6/tokyo
copying tokyo/dbm.py -> build/lib.linux-x86_64-2.6/tokyo
running build_ext
building 'tokyo.cabinet' extension
creating build/temp.linux-x86_64-2.6
creating build/temp.linux-x86_64-2.6/src
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.6 -c src/cabinet.c -o build/temp.linux-x86_64-2.6/src/cabinet.o
In file included from src/cabinet.c:134:
src/TDB.c: In function ‘TDB_metasearch’:
src/TDB.c:1129: warning: implicit declaration of function ‘tctdbmetasearch’
src/TDB.c:1129: warning: assignment makes pointer from integer without a cast
src/cabinet.c: In function ‘init_cabinet’:
src/cabinet.c:294: error: ‘TDBITTOKEN’ undeclared (first use in this function)
src/cabinet.c:294: error: (Each undeclared identifier is reported only once
src/cabinet.c:294: error: for each function it appears in.)
src/cabinet.c:295: error: ‘TDBITQGRAM’ undeclared (first use in this function)
src/cabinet.c:324: error: ‘TDBQCFTSPH’ undeclared (first use in this function)
src/cabinet.c:325: error: ‘TDBQCFTSAND’ undeclared (first use in this function)
src/cabinet.c:326: error: ‘TDBQCFTSOR’ undeclared (first use in this function)
src/cabinet.c:327: error: ‘TDBQCFTSEX’ undeclared (first use in this function)
src/cabinet.c:331: error: ‘TDBMSUNION’ undeclared (first use in this function)
src/cabinet.c:332: error: ‘TDBMSISECT’ undeclared (first use in this function)
src/cabinet.c:333: error: ‘TDBMSDIFF’ undeclared (first use in this function)
error: command 'gcc' failed with exit status 1

Command /home/matt/bin/python -c "import setuptools; __file__='/home/matt/build/tokyo-python/setup.py'; execfile('/home/matt/build/tokyo-python/setup.py')" install --single-version-externally-managed --record /tmp/pip-ZqvLvm-record/install-record.txt --install-headers /home/matt/include/site/python2.6 failed with error code 1
Storing complete log in /home/matt/.pip/pip.log
matt@amalgam:~/$

The only workaround I've been able to find is to to remove the above references from the source, clean it up a bit, and sacrifice table support. If I have to, I have to, but this is ridiculous, and I'd like to do it the right way.

I'm hoping I'm just missing dependency xyz- any ideas?