Как я могу подключиться к базе данных sqlite3 с помощью pyodbc и unixODBC?

#sqlite #pyodbc #unixodbc

#sqlite #pyodbc #unixodbc

Вопрос:

Я не могу понять, как подключиться к базе данных sqlite с помощью pyodbc. У меня настроен DSN, и я могу подключиться к нему через isql без проблем.

 isql -v TEST
  

работает как шарм, однако

 import pyodbc
pyodbc.connect('DSN=TEST')
  

Выдает следующее сообщение об ошибке:

 pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnectW)')
  

Я также перепробовал большое количество перестановок строк подключения в примерах на https://code.google.com/p/pyodbc/wiki/GettingStarted безрезультатно.

 pyodbc.dataSources()
  

Указывает ли dsn, к которому я пытаюсь подключиться, значение, содержащее путь к libsqlite3odbc.so

Я предполагаю, что мне не хватает чего-то очевидного, но я не могу понять, чего…

РЕДАКТИРОВАТЬ: используя unixODBC 2.3.0, python 2.7.1, sqliteodbc 0.88 и pyodbc 2.1.8 РЕДАКТИРОВАТЬ: причина, по которой я хочу использовать pyodbc, заключается в переносимости для Windows и MS Access

Ответ №1:

Просто чтобы проверить, что передается в диспетчер драйверов, включите трассировку ODBC в вашем odbcinst,ini файл add

 [ODBC]
Trace = Yes
TraceFile = /tmp/sql.log
  

Затем снова запустите приложение и посмотрите, что передается в вызов SQLConnect или SQLDriverConnect.