Не получается открыть .mdb на linux python

Имеется база данных в файле .mdb, необходимо её открыть в python в linux. Использую pypyodbc. Скачаны библиотеки unixodbc unixodbc-dev

import pypyodbc

conn = pypyodbc.connect('Driver={Microsoft Access Driver (*.mdb)};Dbq=/home/maxim/db.mdb;Uid=Admin;',
                        readonly=True)
print('connected')
conn.close()

После запуска этого кода, возникает ошибка

  raise OperationalError(state,err_text)
pypyodbc.OperationalError: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'Microsoft Access Driver (*.mdb)' : file not found")

Помогите решить данную проблему


Ответы (1 шт):

Автор решения: eri

ODBC это только протокол, к нему нужен ещё драйвер.

Драйвер от майкрософт поставляется при установке Access. Он тут не заработает.

Драйвер для линуксов в пакете odbc-mdbtools

Нужно описать его в odbcinst.ini

[MDBTools]
Description     = MDBTools Driver
Driver          = libmdbodbc.so
Setup           = libmdbodbc.so
FileUsage       = 1
UsageCount      = 1

Теперь можно работать (проверьте параметры подключения, давно не работал с аксесом - может что поправить надо):

pypyodbc.connect('Driver={MDBTools};Database=/home/maxim/db.mdb;Charset=CP1251')

Но работать с этим будет не легко и возможны какие-то несовместимости. Конвертируйте через mdb-export в csv и загрузите данные в sqlite.

→ Ссылка