【发布时间】:2016-08-26 05:22:48
【问题描述】:
我正在尝试通过 python 连接到 MS Access 数据库(.accdb 文件)。
我用pyodbc做这个连接:
import pyodbc
conn = pyodbc.connect("DRIVER = {Microsoft Access Driver (*.mdb, *.accdb)}; DBG=C:\\test_db.accdb")
但是,我收到以下错误:
('IM002, '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
我访问了 ODBC 数据源管理器,当我尝试配置或删除驱动程序时,我收到了以下消息:
Errors Found:
The specified DSN contains an architecture mismatch between the Driver and Application
我发现此错误是由 Windows(Windows 7 - 64 位)和 Microsoft Access(Office 2010 - 32 位)版本之间的不兼容引起的。 我尝试多次重新安装驱动程序,包括 32 位和 64 位版本,但问题没有解决。 你能帮我解决这个问题吗?提前谢谢你。
【问题讨论】:
-
尝试使用 32 位版本的 Python 运行您的代码。
-
@GordThompson 没有其他选择可以使用其他版本吗?我有几个库和配置很难再次重建,我的程序需要它们。
-
另一种选择是卸载 32 位 Office,然后安装 64 位 Office,这样您就可以拥有 64 位版本的 Access 数据库引擎。
-
@GordThompson 它可以读取使用 32 位 MS Access 版本创建的文件吗?我尝试将程序连接到的数据库位于服务器中,我无法更改它。
-
是的。无论是使用 32 位还是 64 位 Access 数据库引擎创建的数据库文件本身都是相同的。
标签: python odbc ms-access-2010 32bit-64bit pyodbc