导入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。这通常可以正常工作。通过执行此处概述的步骤,我什至可以使tsql
和isql
都按预期工作: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。
谢谢!
假设您有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
以绕过二进制文件并自行构建