在Mac上安装pyodbc和unixodbc

3
我看到过这个错误:Pypyodbc: Can't open lib 'FreeTDS' : file not found"),但那是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芯片。”

为什么关闭了?这个七年的问题没有解决我的问题。有没有办法改进这个问题? - Brian Postow
回答了以下帖子中的问题:https://dev59.com/UcPra4cB1Zd3GeqPlauP#72693640 - Dugini Vijay
3个回答

3
注意:这是一个错误的答案,希望能吸引到一个好的答案,但从技术上看似乎是有效的。
针对M1芯片的Homebrew会将所有内容安装在/opt/homebrew中。其他所有内容都期望在/usr/local中。在新电脑上,/usr/local/lib甚至不存在。因此我执行了以下操作:
sudo ln -s /opt/homebrew/lib /usr/local/lib

这很糟糕,我知道,但这是目前我想到的唯一处理问题的方法。也许某些东西还没有适应M1芯片?我不确定。


0
更好的解决方案:
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/opt/homebrew/lib

这个东西怎么突然就不工作了?它不再查看 DYLD_LIBRARY_PATH 了吗?它直接查看 /usr/local/lib 了吗?(我将 DYLD_... 设置为空,但它仍然在 usr/local/lib 中查找...) - Brian Postow

0

有一个拉取请求,已经被 pyodbc 维护者完全忽略了 13 个月:https://github.com/mkleehammer/pyodbc/pull/870

你可以使用以下命令安装 forked 版本(可能需要卸载以前的版本或添加额外参数来强制重新安装)

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接