Python连接到Access错误
Posted
技术标签:
【中文标题】Python连接到Access错误【英文标题】:Python connect o Access error 【发布时间】:2016-01-04 20:55:42 【问题描述】:我正在使用 Python 2.7.8 32 位调用 MS Access 2007。
下面是我使用的代码:
import sys
import pypyodbc
import os
import pyodbc
conn = pyodbc.connect(r"DRIVER=Microsoft Access Driver (*.mdb, *.accdb); Dbq=D:\Access\Geocoding.accdb;")
cnxn = pyodbc.connect(conn)
我收到错误消息:
Traceback(最近一次调用最后一次): 文件“D:\Access\get_Access.py”,第 13 行,在 conn = pyodbc.connect(r"DRIVER=Microsoft Access Driver (*.mdb, *.accdb); Dbq=D:\Access\Geocoding.accdb;") 错误: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
我在网上搜索了一段时间,没有发现代码有什么问题。
【问题讨论】:
Connecting to MS Access 2007 (.accdb) database using pyodbc的可能重复 如果我只运行第一行代码,它会给出相同的错误消息。 我尝试了使用 pyodbc 连接到 MS Access 2007 (.accdb) 数据库中的解决方案,但没有解决问题。 【参考方案1】:我解决了这个问题。 Access 数据库是在 Access 2013 中创建的。我尝试在 Access 2007 中使用 Python 连接它,这就是问题所在。
我创建了一个 Access 2007 数据库并将所有数据复制到其中。 Python可以毫无问题地连接到它。
【讨论】:
这不是原因,.accdb 文件是 Access 2007-2013 文件类型。这些年没有区别。 是的,这不应该是原因。但是,我可以使用相同的代码来连接在 Access 2007 中创建的 Access 数据库 那么您的机器上有两个 MS Access 安装:2007 和 2013?我希望您不会混淆使用.mdb
扩展名的 Access 2003 和更早的文件类型。
另外,请注意,Python 连接到 Jet/ACE SQL 引擎(不是 Access GUI 程序)。将 Access 称为数据库是用词不当。它实际上是一个连接 Windows Jet/ACE SQL(.dll 文件)的控制台,与 phpMyAdmin 连接 mysql 或 PgAdmin 连接 Postgre 或 Management Studio 连接 SQL Server 不同。
Access 2013 文件是从不同的环境中创建的。我用python调用Access的机器,只安装了Access 2007【参考方案2】:
尝试在您的数据库路径中使用双斜杠而不是斜杠。并将DBQ全部大写
你的路径应该是这样的:
DBQ=D:\\Access\\Geocoding.accdb;
【讨论】:
OP 使用 raw string、r
文字,可以转义单斜杠。
我改为双斜杠,并尝试使用和不使用 'r' ,仍然无法正常工作。给出相同的错误:文件“D:\Access\get_Access.py”,第 16 行,在 以上是关于Python连接到Access错误的主要内容,如果未能解决你的问题,请参考以下文章
无法连接到 Access 数据库(“架构不匹配”错误)[重复]
连接到 WebSocket 时如何修复“Access-Control-Allow-Origin”错误?