在 mac 上安装 pyodbc 和 unixodbc

Installing pyodbc and unixodbc on a mac

我看过Pypyodbc: Can't open lib 'FreeTDS' : file not found") error when trying to connect to SQL server,但是。那已经 7 岁了,似乎对我不起作用,可能是因为 brew 似乎现在把东西放在不同的地方了?

我用 brew 安装了 unixodbc,它在 /opt/homebrew/Cellar.

当我执行 pip install pyodbc 时,它似乎工作正常,但我得到:

 connection = pyodbc.connect(connection_string)
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/usr/local/lib/libtdsodbc.so' : file not found (0) (SQLDriverConnect)")

这显然是错误的,因为 libtdsodbc 在 /opt/homebrew/lib

我尝试编辑 odbcinst.ini,但我不确定它应该保存在哪里。 /etc 或 /etc/unixODBC 目录中没有一个...当我创建任何一个时,似乎都没有被读取,因为它仍然抱怨 /usr/local/lib...

预计到达时间:这是在一台新的 Macbook 上,所以在一个新的 M1 芯片上。

注意:这是一个糟糕的答案,希望能吸引到好的答案,但从技术上讲它似乎有效。

M1 的 Homebrew 会安装 /opt/homebrew 中的所有内容。其他一切都期待 /usr/local 中的东西。在一台新计算机上,/usr/local/lib 甚至不存在。所以我做了

sudo ln -s /opt/homebrew/lib /usr/local/lib

这很糟糕,我知道但这是我目前想出的解决问题的唯一方法。也许有些东西没有赶上 M1?我不确定。

更好的解决方案:

export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/opt/homebrew/lib

pyodbc 维护者几乎忽略了 13 个月的拉取请求:https://github.com/mkleehammer/pyodbc/pull/870

您可以使用此命令安装分叉版本(可能需要卸载以前的版本或添加额外的参数以强制重新安装)

python3 -m pip install git+git://github.com/Aloisius/pyodbc.git@m1-homebrew