Upgrade Python's sqlite3 on Debian
You are right in thinking that the version of sqlite3
causes the problem. sqlite_malloc64
was introduced with release 3.8.7.
Instead of trying to upgrade the Python sqlite3
module which may end up breaking your Python installation, I would suggest compiling the version of spellfix.c
included with version 3.8.2.
You can find the source here: https://www.sqlite.org/src/tarball/27392118/SQLite-27392118.tar.gz
From there you can build the amalgamation with:
sh configure
make sqlite3.c
You will have sqlite3.h
and sqlite3ext.h
in the tsrc
folder. Then compile the spellfix.c
extension with:
gcc -g -fPIC -shared spellfix.c -I ../../tsrc -o spellfix.dll
And you should get a compatible spellfix.dll
that runs with your version of sqlite3.
Here is a manual solution (NOT RECOMMENDED, but as I didn't find backports for libsqlite3 v3.23.1 for my Linux install, I tried this, and it worked):
Download from https://packages.debian.org/search?keywords=libsqlite3-0 a newer version. Here is a direct link:
wget http://ftp.de.debian.org/debian/pool/main/s/sqlite3/libsqlite3-0_3.23.1-1_amd64.deb
Decompress the .deb in a temporary folder:
mkdir tmp dpkg -x libsqlite3-0_3.23.1-1_amd64.deb tmp
or
mkdir tmp; cd tmp; ar x ../libsqlite3-0_3.23.1-1_amd64.deb; tar xvfJ data.tar.xz; cd ..
then
# keep the old one in case it wouldn't work! mv /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6 /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6.old # copy the new one in the right place cp tmp/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6 /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6
It should work:
python -c "import sqlite3; print sqlite3.sqlite_version" # 3.23.1
Disclaimer: this is a bit hack-ish, but it works.