How do I upgrade the SQLite version used by Python's SQLite3 module on Mac? How do I upgrade the SQLite version used by Python's SQLite3 module on Mac? sqlite sqlite

How do I upgrade the SQLite version used by Python's SQLite3 module on Mac?


From your comments, your problem is that your pre-installed sqlite 3.7 comes higher on your path than your third-party 3.8. This means that when you build pysqlite2, by default, it will find and use that 3.7, so it's not doing you any good. And you probably don't want to change around your whole path just to deal with this.

But that's fine, as long as the 3.8 is found first at build time, it doesn't matter what comes first at runtime; the path to 3.8 will be baked into the module. There are a number of ways to do this, but the simplest is something like this:

$ brew install sqlite3$ sudo -s# LDFLAGS=-L/usr/local/opt/sqlite/lib CPPFLAGS=-I/usr/local/opt/sqlite/include pip2.7 install pysqlite# ^D$ python>>> import sqlite3>>> sqlite3.sqlite_version'3.7.13'>>> import pysqlite2.dbapi2>>> pysqlite2.dbapi2.sqlite_version'3.8.6'

The LDFLAGS and CPPFLAGS variables came from the output of the brew install sqlite3 step. If you've installed sqlite3 in some other way, you'll need to get the appropriate values—possibly /usr/local/lib and /usr/local/include, but if not, search for libsqlite3.dylib and sqlite3.h.

Note that if you follow exactly these steps, you'll get a non-fat version of libsqlite3, meaning that pysqlite2 won't work in 32-bit mode. I doubt that's an issue for you, but if it is, you can just install it --universal, or use a different installer instead of Homebrew.


If you use Anaconda as your package manager, run conda install -c anaconda sqlite.

Run python -c "import sqlite3; print(sqlite3.sqlite_version)" to confirm that you have the latest version.

Source


I think the easiest way is to update your Python to the latest version because sqlite3 is shipped with Python.

Otherwise have to update the pysqlite package as well. Under Linux there is a precompiled package python-sqlite.

You can do that by using easy_install. For building this package you need some packages. Nessecerily build pysqlite with the new installed version of sqlite3, in your case 3.8.4.3.

sudo easy_install pysqlite

or

sudo pip install --upgrade pysqlite