Я в основном борюсь с этой ошибкой:
pypyodbc.OperationalError: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/usr/local/lib/libmsodbcsql.13.dylib' : file not found")
Я проверяю именно в этом месте, и файл действительно существует:
ls /usr/local/lib/
docker libltdl.7.dylib libodbc.a libunistring.2.dylib
dtrace libltdl.a libodbc.dylib libunistring.a
libgdbm.6.dylib libltdl.dylib libodbccr.2.dylib libunistring.dylib
libgdbm.a liblzma.5.dylib libodbccr.a node_modules
libgdbm.dylib liblzma.a libodbccr.dylib p7zip
libidn2.0.dylib liblzma.dylib libodbcinst.2.dylib pcsc
libidn2.a libmsodbcsql.13.dylib libodbcinst.a pkgconfig
libidn2.dylib libodbc.2.dylib libodbcinst.dylib python3.7
Результат odbcinst -j
дает мне:
odbcinst -j
unixODBC 2.3.7
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /Users/myname/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
В идеале приложение python должно иметь возможность подключаться к базе данных SQL и находить нужный драйвер. Я знаю, что аутентификация SQL работает, так как я получаю это сообщение на стороне docker sql:
2020-05-08T15:06:25.914+0000 I ACCESS [conn8] Successfully authenticated as principal admin on admin from client 17xx.xxxx.xxxx.(IP address)