pyodbc期望libodbc.2.dylib保留的位置(更改默认odbc文件位置)

问题描述 投票:0回答:1

导入pyodbc时

❯ python
>>> import pyodbc
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: dlopen(/Users/pcosta/Documents/test/myenv/lib/python3.7/site-packages/pyodbc.cpython-37m-darwin.so, 2): Library not loaded: /usr/local/opt/unixodbc/lib/libodbc.2.dylib
  Referenced from: /Users/pcosta/Documents/test/myenv/lib/python3.7/site-packages/pyodbc.cpython-37m-darwin.so
  Reason: image not found

我知道为什么会这样,因为我在预期的位置没有libodbc.2.dylib。原因是我没有写/usr/local/的权限,因此我要在~/.brew中安装Homebrew。这通常可以正常工作。通过执行此处概述的步骤,我什至可以使tsqlisql都按预期工作:https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-SQL-Server-from-Mac-OSX

所以我确实有libodbc.2.dylib,只是它位于/Users/pcosta/.brew/lib中,而不是/usr/local/opt/unixodbc/lib

主要问题是我可以让pyodbc在另一个目录中查找libodbc.2.dylib(和其他关联的文件吗?

我拥有所需的所有文件,并已正确配置它们,我只需要以某种方式重新指定pyodbc。

谢谢!

python odbc pyodbc freetds unixodbc
1个回答
0
投票
部分感谢this GitHub issue的指导,我得以提出一些解决方案。

假设您有brew install unixodbc

    [添加以下路径(到.zshrc.bashrc.bash_profile):
  • export LDFLAGS="-L/Users/pcosta/homebrew/opt/unixodbc/lib $LDFLAGS" export CPPFLAGS="-I/Users/pcosta/homebrew/opt/unixodbc/include $CPPFLAGS" export PKG_CONFIG_PATH="/Users/pcosta/homebrew/opt/unixodbc/lib/pkgconfig $PKG_CONFIG_PATH"
      运行点install --no-binary pyodbc pyodbc以绕过二进制文件并自行构建
  • © www.soinside.com 2019 - 2024. All rights reserved.