Pypyodbc: не удается открыть библиотеку «FreeTDS»: файл не найден ») ошибка при попытке подключиться к серверу SQL

Я пытаюсь подключиться к SQL Server с помощью Pypyodbc на Mac и получаю следующую ошибку:

pypyodbc.DatabaseError: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'FreeTDS' : file not found")

Я установил freeTDS и unixodbc

brew install unixodbc
brew install freetds

и вот моя строка подключения с фиктивными данными:

connection_String = "Driver=FreeTDS;Server=123.12.12.12;tds_version=7.2;Database=db_db;Uid=username:pwd=password:port=1433"

person Mo.    schedule 17.02.2015    source источник
comment
Отвечает ли это сообщение SO на ваш вопрос?   -  person AlexLordThorsen    schedule 16.04.2015
comment
Не парень Mac, но в других системах * nix я бы проверил, что файлы FreeTDS so находятся в LD_LIBRARY_PATH   -  person DM Graves    schedule 21.04.2015
comment
Ответ, который я опубликовал на повторяющийся вопрос, может помочь, если у вас возникла эта проблема.   -  person qris    schedule 18.10.2017


Ответы (2)


Проверьте свой /etc/odbcinst.ini или он может находиться в /etc/unixODBC/odbcinst.ini

В строке подключения у вас есть что-то вроде "DRIVER = FreeTDS", в этом файле должна быть запись, как показано ниже. Возможно, вам придется изменить местоположение вашего водителя.

[FreeTDS]
Description             = FreeTDS unixODBC Driver
Driver          = /usr/lib64/libtdsodbc.so.0
Setup           = /usr/lib64/libtdsodbc.so.0
UsageCount              = 1
person KtmDan    schedule 10.02.2016
comment
libtdsodbc.so.0 не существует в OSX - person ierdna; 22.12.2016
comment
Он называется libtdsodbc.0.so почему-то мой (установленный brew) находится в /etc/local/lib/libtdsodbc.0.so. - person user31415629; 21.01.2019

Во-первых, вы можете использовать pymssql, который не требует настройки unixODBC, что является проблемой здесь .

Чтобы настроить unixODBC с FreeTDS, сделайте следующее: http://www.unixodbc.org/doc/FreeTDS.html

В FreeTDS есть инструмент tsql. Используйте его для проверки строки подключения. Это очень простой инструмент и что-то вроде боли. : - /

Наконец, есть аналогичный вопрос с другими проблемами в StackOverflow: Как настроить pyodbc для правильного приема строк с SQL Server с помощью freeTDS и unixODBC?

person Javier    schedule 17.04.2015
comment
ссылка для настройки unixODBC с FreeTDS отличная, за исключением того, что libtdsodbc.so нигде в OS X нет - person ierdna; 22.12.2016
comment
В Archlinux это часть пакета freetds. Может быть, вы сможете установить эту библиотеку. - person Javier; 24.12.2016
comment
@andrei, если у вас уже установлен Freetds, сначала удалите его, а затем brew install freetds --with-unixodbc исправил мою проблему. См. Здесь stackoverflow.com/questions / 28074751 / - person alys; 18.05.2017
comment
сначала у меня работал pyodbc, затем я решил обновить python до python3 (или, скорее, установить другую версию вместе с python2), и теперь я не могу заставить его снова работать. - person ierdna; 31.07.2017