使用 Python 连接到 Access 2013:未找到数据源名称

Connect to Access 2013 with Python: Data source name not found

我使用此代码连接到 Access 2013:

conn_str = r"Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\_DELOITTE\Statistics.mdb;"
self.conn = pyodbc.connect(conn_str)

我收到以下错误:

pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

我使用 Windows 8、Intel 处理器、32 位访问和 Python 2.7。

在管理工具中,我有 ODBC Data Sources (32-bit)ODBC Data Sources (64-bit) 都指向 %windir%\system32\odbcad32.exe。只填了"System DSN",没有填"User DSN".

如果您使用的是 64 位 Python,这可能是不兼容的。我刚刚在我的机器上测试了类似的东西。

这不是决定性的,因为这些是 Python 的不同版本,但这是一个可以遵循的线索。这是我测试的内容:

32 位 Python 2.7,在 32 位 MS Access 驱动程序上。 连接成功,没有错误。

64 位 Python 3.4,在 32 位 MS Access 驱动程序上。 返回错误:“pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC 驱动程序管理器] 数据源 na 未找到我且未指定默认驱动程序 (0) (SQLDriverConnect)')"