views:

507

answers:

2

I am trying to install pysqlite and have troubles with that. I found out that the most probable reason of that is missing sqlite headers and I have to install them.

However, I have no ideas what these headers are (where I can find them, what they are doing and how to install them).

Can anybody, pleas, help me with that?

A: 

pysqlite needs to compiled/build before you can use it. This requires C language header files (*.H) which come with the source code of sqllite itself.

i.e. sqllite and pysqlite are two different things. Did you install sqlite prior to trying and build pysqllte ? (or maybe you did, but did you do so just with the binaries; you need the source package (or at least its headers) for pysqlite purposes.

mjv
+4  A: 
$ apt-get install libsqlite3-dev # or rpm -i sqlite-devel-something.rpm


I think a number of interpreters just recompile their small connection libraries on installation, but to do that they need the C .h files in addition to the library to link against. You may already have the library, because something else depended on it, but you don't necessarily have the dev package, which is kind of half-way between source and binary.

Part of it is straightforward, if you are going to develop with a library you need its interface headers.

But I think something more happened, at first, people tried all-source and all-binary distributions, but the all-binary ones were vulnerable to dependency hell, and the all-source ones were overkill. I think now that an interesting compromise is in use, a semi-source distribution where a program links to installed libraries by recompiling those parts of it that link to extension libraries. This makes a lot of sense with interpreters where most of the system can arrive in binary but the extension modules are dynamically loaded and compiled for the installed system. I think.

DigitalRoss
I get:apt-get: command not found
Verrtex
What platform are you on? And which CLI?
DigitalRoss
My platform: CentOS release 5.3 (Final).I have Python-2.6.2
Verrtex
Aha, so you need the `.rpm` instead of the `.deb` package. Your command will be something like `rpm -i sqlite3-devel-3.n.n.n.rpm`. CentOS doesn't seem to coordinate packages, so you need to go hunt down an rpm, and I guess you just have to know which RHEL corresonds to which CentOS. Start here, maybe: http://dag.wieers.com/rpm/packages/sqlite/
DigitalRoss