Jar*_*kia 5 python macos pip pyodbc
在 macOS 12 上pip install pyodbc会出现错误:
src/pyodbc.h:56:10: fatal error: 'sql.h' file not found
Run Code Online (Sandbox Code Playgroud)
对于旧版本的 macOS 和 Pip,此主题已在 OSX 10.9 (Mavericks) 上安装 pyodbc 失败中解决。所提供的答案均不适用于当前版本。
注意:由于 macOS、Pip、Homebrew 和 unixODBC 的版本不同,失败的原因似乎随时间变化很大。
在 pyodbc 4.0.32 中运行pip install pyodbc时指定 unixODBC 库的位置:
CPPFLAGS='-I/opt/homebrew/Cellar/unixodbc/2.3.9_1/include' \
LDFLAGS='-L/opt/homebrew/Cellar/unixodbc/2.3.9_1/lib' \
pip install pyodbc
Run Code Online (Sandbox Code Playgroud)
似乎不需要安装 iODBC,因为 unixODBC 可以工作。
此外,获取 SQL Server 的 ODBC 驱动程序也很麻烦。https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/install-microsoft-odbc-driver-sql-server-macos上的文档不准确,因为 OpenSSL 版本 3 和 1 失败在安装时正确检测。
由于 OpenSSL 版本冲突,尝试连接 SQL Server 将导致如下错误:
https://github.com/microsoft/homebrew-mssql-release/issues/59中描述了修复驱动程序加载的各种尝试。
手动符号链接 OpenSSL 1.1 修复了撰写本文时的问题:
ln -s /opt/homebrew/opt/openssl@1.1/lib/libssl.dylib /usr/local/lib/
ln -s /opt/homebrew/opt/openssl@1.1/lib/libcrypto.dylib /usr/local/lib/
Run Code Online (Sandbox Code Playgroud)
请理解,这可能会发生变化。