Ubuntu系统使用pyodbc读取Access(mdb)文件提示驱动找不到如何解决
错误原因定位
- 核心问题为系统无法找到代码中指定的Access ODBC驱动:从报错日志中的
unixODBC标识可判断你当前使用的是Linux/macOS类Unix系统,微软官方仅面向Windows系统发布Access ODBC驱动,Unix系统默认无该驱动,也无官方适配版本。 - 即便在Windows环境下,若代码填写的驱动名称和系统实际已安装的驱动名称不一致,也会触发同类报错:不同版本的Access驱动完整名称可能包含
(*.mdb, *.accdb)后缀,与你当前填写的名称存在差异。 - 额外排查点:若Windows环境下Python架构(32位/64位)与安装的Access驱动架构不匹配,也会出现驱动找不到的提示。
对应解决方案
Unix类系统(Linux/macOS)
- 先安装开源的Access ODBC兼容驱动:
Debian/Ubuntu系列执行命令:sudo apt install unixodbc mdbtools odbc-mdbtools
macOS通过Homebrew执行命令:brew install mdbtools unixodbc - 安装完成后执行命令
odbcinst -q -d查看系统已注册的所有ODBC驱动,记录MDB相关驱动的准确名称,常见为MDBTools。 - 替换代码中的驱动参数即可,修改后参考代码:
import pyodbc DBfile = './test.mdb' # 此处填写你查询到的准确驱动名称 conn = pyodbc.connect('DRIVER={MDBTools};DBQ='+DBfile)
Windows系统
- 打开「ODBC数据源管理器」(注意匹配Python的32/64位版本),在「驱动」标签页查看已安装的Access驱动完整名称,通常最新版本为
Microsoft Access Driver (*.mdb, *.accdb)。 - 用查询到的完整名称替换代码中的驱动名称即可正常连接。
内容的提问来源于stack exchange,提问作者diedro
相关产品推荐
相关产品推荐

