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

使用Python的pyodbc连接MS Access数据库时仅识别SQL Server驱动问题

解决pyodbc无法识别MS Access驱动的问题

我之前也碰到过一模一样的问题,别慌,咱们一步步排查解决:

1. 先确认Access驱动是否安装

pyodbc连接Access数据库必须依赖Microsoft Access Database Engine,这是关键前提:

  • 如果你是32位系统,直接下载对应32位版本安装即可;
  • 64位系统要注意:如果已经装了32位Office,只能装32位的Access Database Engine(否则会触发版本冲突报错);纯净64位系统可以直接装64位版本。
  • 要是安装时遇到“无法安装64位版本,因为已安装32位Office”的提示,用静默安装命令绕过:
    AccessDatabaseEngine_X64.exe /quiet
    

2. 检查Python与驱动的架构匹配

pyodbc对位数匹配要求很严格,必须保证Python和Access驱动的位数完全一致:

  • 64位Python ↔ 64位Access驱动
  • 32位Python ↔ 32位Access驱动
  • 可以用这段代码快速确认Python位数:
    import sys
    print(sys.maxsize > 2**32)  # 返回True是64位,False是32位
    

3. 手动指定驱动名称测试连接

有时候pyodbc.drivers()可能不会完整列出所有驱动,但你可以直接手动指定驱动名尝试连接:

  • 常用驱动名称:Microsoft Access Driver (*.mdb, *.accdb)(新老版本通用)
  • 测试连接代码示例:
    import pyodbc
    try:
        conn_str = r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\你的数据库路径\example.accdb;'
        conn = pyodbc.connect(conn_str)
        print("连接成功!")
        conn.close()
    except Exception as e:
        print(f"连接失败:{str(e)}")
    

4. 进阶排查:检查PATH和注册表

  • 确保Access驱动的安装目录(比如C:\Program Files\Microsoft Office\root\Office16或C:\Program Files (x86)\Microsoft Office\root\Office16)在系统PATH环境变量中;
  • 打开注册表编辑器,查看HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI(64位)或HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ODBC\ODBCINST.INI(32位)下是否有Access驱动的条目,没有的话说明驱动安装不完整,建议重新安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 22:47:40