Не удается открыть lib 'SQL Server Native Client 10.0' Python3, Linux ubuntu

Я пытаюсь подключиться к серверу MSSQL с консолью python, чтобы проверить соединение и получить таблицы базы данных, вот мой код

>>>from sqlalchemy import create_engine
>>>engine = create_engine("mssql+pyodbc://username:password@host:port/databasename?driver=SQL+Server+Native+Client+10.0")
>>> connection = engine.connect()

он возвращает мне эту ошибку

sqlalchemy.exc.DBAPIError: (pyodbc.Error) ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'SQL Server Native Client 10.0' : file not found (0) (SQLDriverConnect)")

я установил pyodbc. Я попытался изменить драйвер на «SQL Server Native Client 11.0» и даже «SQL Server», но все равно возвращает ту же ошибку.

Пожалуйста, что мне делать? Кажется, я не знаю, что я не сделал или сделал неправильно.


person donjoe    schedule 07.01.2020    source источник


Ответы (1)


поэтому я провел еще несколько исследований и обнаружил, что использую неправильный драйвер, и в моем pyodbc не было этого драйвера. вероятно, потому что я установил оба

вот как я проверил доступные мне драйверы.

>>>import pyodbc
>>> for driver in pyodbc.drivers():
...     print(driver)

и выход был

ODBC Driver 17 for SQL Server
ODBC Driver 13 for SQL Server

поэтому я просто изменил код на

>>>engine = create_engine("mssql+pyodbc://username:password@host:port/databasename?driver= ODBC Driver 17 for SQL Server")
>>> connection = engine.connect()

и это прошло.

person donjoe    schedule 07.01.2020