【已解决】pyodbc.InterfaceError: (‘IM002‘, ‘[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且

用python的pyodbc库连接access数据库的时候出现了这个错误:
在这里插入图片描述
查了各种资料之后发现,应该是win10系统上没有安装Microsoft Access Diver的驱动,可以用下面的方法来查看是否安装了:
在这里插入图片描述
先到官网下载相应的驱动,我的电脑是2016版本的:
https://www.microsoft.com/en-us/download/details.aspx?id=54920&WT.mc_id=rss_alldownloads_all
按着提示安装即可。
但是我出现了问题,解决方法如下,
打开cmd:

你的路径\AccessDatabaseEngine.exe /quiet 

可以到这个目录下的ODBC64位查看安装情况
在这里插入图片描述
在这里插入图片描述
也可以用python查看:

import pyodbc
[x for x in pyodbc.drivers() if x.startswith('Microsoft Access Driver')]

在这里插入图片描述
后续:
后面又由于出现了unable to load odbcji32.dll;查阅了很多资料也没解决,最终只能被迫重装了64位的office;然后再如上安装了一下驱动,总算可以运行代码了:

import pyodbc
[x for x in pyodbc.drivers() if x.startswith('Microsoft Access Driver')]
DBfile = r"D:\test.accdb"  # 数据库文件
conn = pyodbc.connect(r"Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + DBfile + ";Uid=;Pwd=;")
cursor = conn.cursor()
SQL = "SELECT * from Kingview1;"
for row in cursor.execute(SQL):
    print(row.WD)
cursor.close()

搞了两天最终才知道应该是我64位的系统装了32位的office导致了这一系列的事情。。。。总之。。。windows有时候使用上还是有很多坑的。。。

猜你喜欢

转载自blog.csdn.net/qq_34391511/article/details/107644722