You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS下pyodbc连接Azure SQL提示ODBC驱动文件找不到求助

解决macOS下pyodbc连接Azure SQL时找不到ODBC驱动的问题

针对你遇到的Can't open lib 'ODBC Driver 18 for SQL Server' : file not found错误,按以下步骤排查解决:

1. 确认驱动文件实际存在

首先检查驱动文件是否真的在指定路径:

ls /opt/homebrew/lib/libmsodbcsql.18.dylib

如果输出提示文件不存在,重新安装驱动:

HOMEBREW_ACCEPT_EULA=Y brew reinstall msodbcsql18

2. 直接使用驱动绝对路径替代名称

绕开驱动名称查找逻辑,在连接字符串里直接指定驱动文件的绝对路径:

import pyodbc

SERVER = 'mcp-mldb-prod-4fcf7c3f.database.windows.net'
DATABASE = 'mldb'
USERNAME = 'metauser'
PASSWORD = 'metapassword'
# 直接使用驱动路径代替驱动名称
connectionString = f'DRIVER=/opt/homebrew/lib/libmsodbcsql.18.dylib;SERVER={SERVER};DATABASE={DATABASE};UID={USERNAME};PWD={PASSWORD}'
conn = pyodbc.connect(connectionString)

3. 强制指定odbcinst.ini路径

确保pyodbc读取正确的驱动配置文件,可在脚本开头添加环境变量设置:

import os
os.environ['ODBCINSTINI'] = '/opt/homebrew/etc/odbcinst.ini'

import pyodbc

# 后续连接代码不变
SERVER = 'mcp-mldb-prod-4fcf7c3f.database.windows.net'
DATABASE = 'mldb'
USERNAME = 'metauser'
PASSWORD = 'metapassword'
connectionString = f'DRIVER={{ODBC Driver 18 for SQL Server}};SERVER={SERVER};DATABASE={DATABASE};UID={USERNAME};PWD={PASSWORD}'
conn = pyodbc.connect(connectionString)

或者在运行脚本前通过终端设置环境变量:

export ODBCINSTINI=/opt/homebrew/etc/odbcinst.ini
python your_script.py

4. 验证架构匹配(Apple Silicon机型)

如果你使用的是Apple Silicon(M1/M2等)芯片,确认unixODBC和驱动都是arm64架构:

file /opt/homebrew/lib/libodbc.dylib
file /opt/homebrew/lib/libmsodbcsql.18.dylib

两个命令的输出都应包含arm64。如果出现x86_64,说明你可能通过Rosetta运行了x86版本的brew,需要卸载后重新安装arm64版本的brew,再重新安装驱动。

内容的提问来源于stack exchange,提问作者merkle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 11:20:23