Не получается открыть .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.