I would like to use the SQLite version 3.8 with Python, but the SQLite3 module is using an out of date version. I've installed SQLite version 3.8.4.3 on my Mac, but sqlite3.sqlite_version still returns 3.7.13.
I've done quite a bit of searching on SO and elsewhere, but can't seem to find a definitive answer.
Thanks!
The version of sqlite that comes with Python is 2.6. 0 (used by import sqlite3). I have tried several ways to update this to the 3.7. x version (or really, anything newer than 2.6.
SQLite is a self-contained, file-based SQL database. SQLite comes bundled with Python and can be used in any of your Python applications without having to install any additional software.
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 love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With