首页 > 解决方案 > 使用 Python 3.7 阅读 MS Access

问题描述

我已经在线阅读了一百页关于如何将遗留的 MS Access 数据库连接到 Python,但一切似乎都过时了。我正在使用带有 SQLAlchemy 和 PyODBC 的 Python 3.7 64 位,但 SQLAlchemy 不再支持 MS Access,我无法让任何代码工作。最近有人用现代版的 Python 连接到 Access 吗?这是我的代码不起作用。

import pyodbc
connStr = (
    r"DRIVER={Microsoft Access Driver (*.accdb)}; DBQ=E:\db\Records.accdb; Uid=Admin; Pwd=;"
    )
conn = pyodbc.connect(connStr)
cursor = conn.cursor()
cursor.execute('select * from Students')
for row in cursor.fetchall():
    print(row)

错误:

回溯(最后一次调用):文件“G:/Projects/AccessTest/accessdb.py”,第 7 行,在 conn = pyodbc.connect(connStr) pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft] [ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序 (0) (SQLDriverConnect)')

标签: python-3.xms-accesssqlalchemypyodbc

解决方案


添加了来自 MS 的两个 32 位驱动程序,并创建了一个捷径(因为现有的只是转到 64 或 32,无论您的操作系统是什么)。然后我能够设置一个 ODBC 源,PyODBC 连接得很好。在相关说明中,我在 64 位 Windows Server 上使用 XAMPP 时遇到了同样的问题,安装额外的 MS 驱动程序也解决了这个问题。

这是使用 MS 安装程序安装 32 位驱动程序的位置。显然不是第一个。

C:\Windows\SysWOW64\odbcad32.exe

推荐阅读