【问题标题】:Pyodbc - The specified DSN contains an architecture mismatch between the Driver and ApplicationPyodbc - 指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配
【发布时间】: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


【解决方案1】:

您必须确保 Python 版本与 ODBC 驱动程序版本匹配:32 位与 32 位、64 位与 64 位。

您似乎拥有 64 位 Python / pyodbc 和 32 位 MS Access。

您需要做的是安装 32 位 Python 版本,然后安装 pyodbc

祝你好运!

【讨论】:

  • 是的。我检查了一下,我有 64 位 python。没有任何替代方案,而不是重新安装它?我有几个库和配置很难再次重建。
  • 我可以使用除 pyodbc 之外的其他库。我唯一想要的是将数据从我的 python 程序导入/导出到这个 ms 访问数据库。
猜你喜欢
  • 2012-02-12
  • 1970-01-01
  • 2014-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-22
相关资源
最近更新 更多