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

macOS M1 Pro下pyodbc调用SQL Server驱动提示文件不存在怎么解决

解决方案

按以下步骤依次排查:

  1. 完成ODBC驱动注册
    unixODBC默认读取/etc/odbcinst.ini作为系统级驱动配置文件,你当前该文件为空,未完成驱动注册,执行以下命令将homebrew安装包自带的配置写入系统配置:
sudo cat /opt/homebrew/opt/msodbcsql17@17.8/odbcinst.ini >> /etc/odbcinst.ini

执行完成后运行odbcinst -q -d,如果返回ODBC Driver 17 for SQL Server说明注册成功。

  1. 修正pyodbc连接参数
    驱动注册完成后无需填写完整的dylib路径,直接使用注册的驱动名称即可,避免后续homebrew版本升级导致路径失效:
conn = pyodbc.connect(driver='{ODBC Driver 17 for SQL Server}',
                       server='server',
                        database='DB',
                        uid='id',
                        pwd='password')
  1. 验证架构匹配
    如果仍报错,依次检查驱动和Python的架构是否一致:
  • 检查驱动架构:执行file /opt/homebrew/Cellar/msodbcsql17/17.8.1.1/lib/libmsodbcsql.17.dylib,返回结果需包含arm64标识,如果仅返回x86_64说明你安装的是x86版本驱动,需要切换到ARM架构的homebrew环境重装msodbcsql17
  • 检查Python架构:执行python3 -c "import platform;print(platform.machine())",返回结果为arm64才是原生M1版本Python,如果返回x86_64说明你当前运行的是Rosetta转译的Python,架构不匹配会触发「文件不存在」报错
  1. 修复软链接
    检查/opt/homebrew/lib/libmsodbcsql.17.dylib软链接是否存在且指向正确:
ls -l /opt/homebrew/lib/libmsodbcsql.17.dylib

如果软链接失效,手动创建即可:

ln -s /opt/homebrew/Cellar/msodbcsql17/17.8.1.1/lib/libmsodbcsql.17.dylib /opt/homebrew/lib/libmsodbcsql.17.dylib

补充:如果弹出「无法验证开发者」的系统提示,请到「系统设置→隐私与安全性」中允许该动态库运行即可


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:27:02