Does Python 2.5 include or not include SQLite engine?

Diez B. Roggisch deets at nospam.web.de
Tue Apr 22 17:37:59 CEST 2008


Paul Melis schrieb:
> Hi,
> 
> Diez B. Roggisch wrote:
>> Dennis Lee Bieber schrieb:
>>
>>> On Mon, 21 Apr 2008 19:05:46 -0400, python at bdurham.com declaimed the
>>> following in comp.lang.python:
>>>
>>>> I thought one of the major features of Python 2.5 was its embedded
>>>> SQLite engine.
>>>>
>>>     No, just the inclusion of the adapter became standard... The
>>> packagers of Windows installers include the SQLite3 DLL as it isn't a
>>> commonly available item... But many Linux versions probably include it
>>> as an option during the OS install.
>>
>>
>> AFAIK thats wrong. On my ubuntu gutsy for example, I find this:
>>
>> deets at absinth:~$ find /usr/lib/python2.5/ | grep -i sqlite
>> /usr/lib/python2.5/lib-dynload/_sqlite3.so
>> /usr/lib/python2.5/site-packages/pysqlite-2.3.2.egg-info
>> /usr/lib/python2.5/site-packages/pysqlite2
>> /usr/lib/python2.5/site-packages/pysqlite2/__init__.py
>> /usr/lib/python2.5/site-packages/pysqlite2/__init__.pyc
>> /usr/lib/python2.5/site-packages/pysqlite2/_sqlite.so
>> /usr/lib/python2.5/site-packages/pysqlite2/dbapi2.py
>> /usr/lib/python2.5/site-packages/pysqlite2/dbapi2.pyc
>> /usr/lib/python2.5/sqlite3
>> /usr/lib/python2.5/sqlite3/__init__.py
>>
>> ...
>>
>>
>> As you can see, stock 2.5 ships with its OWN version of sqlite, and I 
>> additionally installed the pysqlite-wrapper for whatever reason I now 
>> can't remember.
> 
> The _sqlite3.so is only a wrapper around the real sqlite library.
> Compiling a fresh Python 2.5.2 install here gives:
> 
> 15:46|paul at tabu:~/py25/lib/python2.5/lib-dynload> ldd _sqlite3.so
>         linux-gate.so.1 =>  (0x00748000)
>         libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x00111000)
>         libpthread.so.0 => /lib/libpthread.so.0 (0x00631000)
>         libc.so.6 => /lib/libc.so.6 (0x00d1b000)
>         /lib/ld-linux.so.2 (0x00749000)
> 
> I.e. the _sqlite3 module links against the system-wide installed Sqlite 
> version.
> 
> Furthermore, checking the Python source distribution will show that 
> there is no included version of the whole Sqlite library, only the 
> wrapper code. How your Linux distribution packages Python w.r.t. the 
> sqlite3 module is different per distro.

Hm. Before posting, I checked this:

http://svn.python.org/view/external/sqlite-source-3.5.7.x/

So I got the impression that because the source is there (I admit *not* 
checking  the python source distribution itself though) and a library is 
in the python-lib, that python ships with sqlite.

So - I stand corrected. Given the way some linux distros treat python 
wrt to e.g. distutils, I wonder if there is one out there that does 
*not* have sqlite built-in.

Diez



More information about the Python-list mailing list