我想连接到主机系统上的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。