Python中sqlalchemy和Microsoft Access驱动程序的接口错误



我想连接到主机系统上的MS Acces数据库。我在jupyter笔记本中使用Python 3.7。当我连接到引擎时,我会得到异常InterfaceError。

我的代码:

import urllib
from sqlalchemy import create_engine
connection_string = (
r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
r'DBQ=./Datenbank1.accdb;'
)
connect_str = f"access+pyodbc:///?odbc_connect={urllib.parse.quote_plus(connection_string)}"
engine = create_engine(connect_str, echo=True)
engine.connect()

接口错误:(pyodbc.InterfaceError(('IM002','[IM002][Microsoft][ODBC驱动程序管理器]Der Datenquelenname wurde nichtgefunden,und es wurde kein Standardtreiber angegeben(0((SQLDriverConnect('((此错误的背景信息位于:http://sqlalche.me/e/13/rvf5)

未找到数据源名称,也未指定默认驱动程序(0((SQLDriverConnect('(

你能帮我找出错误吗?也许我错过了正确的驱动程序,但我不知道如何安装

在Windows上,判断Python脚本是以32位还是64位运行的一种方法是检查pyodbc.drivers()的输出。在32位模式中,该列表将包括较旧的"0";喷气式飞机;驱动程序…

Microsoft Access驱动程序(*.mdb(

…(注意:没有提到*.accdb(,它随Windows一起提供,仅提供32位版本。

在这种情况下,pyodbc.drivers()返回的列表不包括该驱动程序,因此我们可以推断脚本是以64位运行的。因此,解决方案是下载64位版本的较新的";ACE";ODBC驱动程序。

有关通过pyodbc连接到Access的更多详细信息,请参阅pyodbc wiki。

最新更新