Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 未找到驱动程序,即使它是';在pyodbc.dataSources()中列出的_Python 3.x_Ms Access_Odbc_Driver_Pyodbc - Fatal编程技术网

Python 3.x 未找到驱动程序,即使它是';在pyodbc.dataSources()中列出的

Python 3.x 未找到驱动程序,即使它是';在pyodbc.dataSources()中列出的,python-3.x,ms-access,odbc,driver,pyodbc,Python 3.x,Ms Access,Odbc,Driver,Pyodbc,我尝试使用pyodbc访问MS access.mdb数据库。我已经设置了ODBC驱动程序,该驱动程序已经注册到我的DSN,我可以在pyodbc.dataSources()中找到它 结果: Excel Files [Microsoft Excel Driver (*.xls)] MS Access DB [Microsoft Access Driver (*.mdb, *.accdb)] MS Access Database [Microsoft Access Driver (*.mdb)] dB

我尝试使用pyodbc访问MS access.mdb数据库。我已经设置了ODBC驱动程序,该驱动程序已经注册到我的DSN,我可以在
pyodbc.dataSources()中找到它

结果:

Excel Files [Microsoft Excel Driver (*.xls)]
MS Access DB [Microsoft Access Driver (*.mdb, *.accdb)]
MS Access Database [Microsoft Access Driver (*.mdb)]
dBASE Files [Microsoft dBase Driver (*.dbf)]
因此,我尝试使用以下命令访问数据库:

con = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=H:\access-panda\data\myDB.mdb;')
但是,我一直在犯这样的错误:

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

我试图解决这个问题。。但是没有运气。我遗漏了什么吗?

pyodbc.dataSources()生成的列表有误导性,因为它同时显示了32位和64位“平台”的结果。在具有32位Office的计算机上,在64位Python下运行代码将生成列表

Excel文件[Microsoft Excel驱动程序(*.xls,*.xlsx,*.xlsm,*.xlsb)]
MS Access数据库[Microsoft Access驱动程序(*.mdb,*.accdb)]
但是,如果我们打开64位ODBC管理员,我们会看到它们都适用于32位“平台”

并且在64位Python下运行的pyodbc将无法使用相关的驱动程序

获取可用驱动程序列表的更可靠方法是使用

drivers=pyodbc.drivers()
打印(驱动程序)

这应该只显示特定“平台”(即64位或32位Python)可用的驱动程序。

是的,我的Python和pyodbc是64位的。。。我已经更新了sysWOW64中的ODBC驱动程序。。。但这个问题还没有解决。最后,我将python和pyodbc降级为32位。有没有办法将pyodbc-64位设置为引用正确的驱动程序?@SaberAlex-64位Python/pyodbc只能用于64位驱动程序。如果安装了32位Office,则Python应用程序必须以32位运行才能使用32位Access ODBC驱动程序。我的pyodbc-64位似乎一直指32位driver@SaberAlex-您的意思是
pyodbc.drivers()
正在显示“Microsoft Access驱动程序…”当您在64位Python下运行脚本时?
Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')