pyODBC: указать расположение драйвера в Windows

Можно ли указать, где pyodbc ищет драйвер SQL?

У меня есть приложение на Python, которому нужен драйвер "SQL Native Client 10.0" для подключения к базе данных SQL. Итак, моя строка подключения выглядит так:

dsn = 'DRIVER={SQL Server Native Client 10.0};SERVER=localhost;DATABASE=mydatabase;UID=sa;PWD=mypasswd'

con = pyodbc.connect(dsn) 
with con: 
    #do something

Один из основных недостатков (по крайней мере для меня) заключается в том, что на компьютере должен быть установлен драйвер SQL Native Client 10.0, а для этого требуются права администратора. Однако я хочу, чтобы пользователь мог запустить мое приложение на Python без какой-либо установки.

После быстрого исследования Интернета кажется, что собственный клиент SQL 10.0 зависит от простой библиотеки DLL (sqlncli10.dll), которая находится в C:\Windows\System32. Так можно ли сказать pyodbc, где искать соответствующий драйвер SQL?

Насколько я понимаю, pymssql делает нечто подобное (драйвер FreeTDS включен в пакет Python, поэтому дальнейшая установка драйвера не требуется). Однако, на мой взгляд, pyobc более стабильный, чем pymssql (и сообщество, похоже, тоже более активно), поэтому я хотел бы использовать pyodbc для связи с моей базой данных.

1 ответ

Если ваше приложение на самом деле использует функции, специфичные для

Driver={SQL Server Native Client 10.0}

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

Driver={SQL Server}

входит в стандартную установку Windows и доступна как для 32-разрядных, так и для 64-разрядных приложений.

Другие вопросы по тегам