在 64 位 PC 上找不到数据源名称的 pyodbc 错误或没有默认驱动程序
Posted
技术标签:
【中文标题】在 64 位 PC 上找不到数据源名称的 pyodbc 错误或没有默认驱动程序【英文标题】:pyodbc error of data source name not found or no default driver on 64-bit PC 【发布时间】:2013-07-28 17:07:48 【问题描述】:在获得一台 64 位的新计算机后,当我在 32 位计算机上运行可以正常连接的 Python 脚本时遇到以下错误。我正在尝试连接到 Access 数据库。我正在使用 64 位版本的 python 和 pyodbc
错误信息: pyodbc.Error: ('IM002', '[IMO] [Microsoft] [ODBC Driver Manager] Data source name not found and no default driver specified
我使用的连接代码在 32 位 PC 上运行良好:
cnxn = pyodbc.connect(r'DRIVER=Microsoft Access Driver (*.mdb, *.accdb); DBQ=managermeta.mdb; Provider=MSDASQL;')
【问题讨论】:
【参考方案1】:从here 下载 64 位 Office 2010 驱动程序。我只能使用 Access 2010 数据库进行测试,但它也应该适用于 2007。您不需要连接字符串的Provider
属性。
cnxn = pyodbc.connect(r'DRIVER=Microsoft Access Driver (*.mdb, *.accdb); DBQ=managermeta.mdb;')
【讨论】:
感谢小熊的回答。我之前确实尝试过下载这个,然后现在又下载了。它不会让我安装,因为我的电脑上安装了 32 位版本的 office。所以这可能是我的问题,对吧?如果是这样,如果我的公司允许的话,我会尝试在我的 PC 上安装 64 位版本的 Office。 @wilbev 如果您想尝试并行安装 32 位和 64 位 Office 驱动程序,请参阅 this SO answer。 根据您的提示,我成功地安装了 64 位版本的 Office 驱动程序,但我的脚本中仍然出现同样的错误。我已经尝试通过输入硬文件夹路径来连接到 mdb 文件,所以我仍然不知道为什么它不会在我的脚本中连接。 我下载并安装了 32 位驱动程序,之后我的代码就像一个魅力一样运行。谢谢!以上是关于在 64 位 PC 上找不到数据源名称的 pyodbc 错误或没有默认驱动程序的主要内容,如果未能解决你的问题,请参考以下文章
spacy 在 Windows 10 和 Python 3.5.3 上找不到模型“en_core_web_sm” :: Anaconda 自定义(64 位)
Python 32 位在 OS X Lion 上找不到 MySQLdb 模块
g++ -m32 在 debian amd64 上找不到 libstdc++