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-разрядных приложений.