Pypyodbc:尝试连接SQL Server时无法打开lib'FreeTDS':找不到文件")错误

Mo.*_*Mo. 19 python sql-server macos freetds pypyodbc

我正在尝试使用Mac上的Pypyodbc连接到SQL Server,我收到以下错误:

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

我已经安装了freeTDS和unixodbc

brew install unixodbc
brew install freetds
Run Code Online (Sandbox Code Playgroud)

这是我的连接字符串与虚拟数据:

connection_String = "Driver=FreeTDS;Server=123.12.12.12;tds_version=7.2;Database=db_db;Uid=username:pwd=password:port=1433"
Run Code Online (Sandbox Code Playgroud)

小智 10

检查你的/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
Run Code Online (Sandbox Code Playgroud)

  • 由于某种原因它被称为 libtdsodbc.0.so ,我的(由brew安装)位于`/etc/local/lib/libtdsodbc.0.so`中。 (3认同)
  • OSX上不存在libtdsodbc.so.0 (2认同)

Jav*_*ier 6

首先,您可以使用不需要配置unixODBC的pymssql,这是问题所在.

要使用FreeTDS配置unixODBC,请执行以下操作:http://www.unixodbc.org/doc/FreeTDS.html

FreeTDS,tsql附带了一个工具.用它来测试你的连接字符串.这是一个非常简单的骨头工具,有点痛苦.: - /

最后,与StackOverflow中的其他问题有类似的问题:如何配置pyodbc以使用freeTDS和unixODBC正确接受来自SQL Server的字符串?

  • 在 MacOS Monterey 上,brew install freetds --with-unixodbc 会抛出错误:invalid option: --with-unixodbc 。不再需要选项,请参阅 https://github.com/FreeTDS/freetds/issues/257 (2认同)