Search code examples
pythonsqlitepyodbcsqlite-odbc

pyodbc connection to sqlite database


I have very simple python script in which I try to connect to sqlite database using pyodbc:

#!/usr/bin/env python

import sqlite3
import pyodbc

con_str = 'DRIVER={SQLITE3};DATABASE=%s' % ('/tmp/test.db')

db = pyodbc.connect(con_str)

When i execute this script I receive error:

Traceback (most recent call last):
  File "./test.py", line 8, in <module>
    db = pyodbc.connect(con_str)
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/usr/lib64/libsqlite3odbc.so' : file not found (0) (SQLDriverConnect)")

/usr/lib64/libsqlite3odbc.so is a link to file, which exists:

$ ll /usr/lib64/libsqlite3odbc*
-rwxr-xr-x 1 root root 148232 Sep 29  2012 /usr/lib64/libsqlite3odbc-0.81.so
lrwxrwxrwx 1 root root     22 Aug 29 07:52 /usr/lib64/libsqlite3odbc.so -> libsqlite3odbc-0.81.so

Here are some odbc files:

$ cat /etc/odbc.ini
[SQLite3 Datasource]
Driver          = SQLITE3

$ cat /etc/odbcinst.ini
[SQLITE3]
Description             = SQLite ODBC 3.X
Driver          = /usr/lib64/libsqlite3odbc.so
Setup           = /usr/lib64/libsqlite3odbc.so
Threading               = 2
FileUsage               = 1
UsageCount              = 1

Installed versions (rpms): pyodbc-3.0.7-1.x86_64, sqliteodbc-0.81-1.2.x86_64.

What should I do to eliminate that error?


Solution

  • Solution was to install 0.9995 version of SQLite ODBC Driver .