我试图使用pyodbc将Python连接到MS Access数据库,但是每次遇到以下错误:
pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
这就是我编写的将python连接到MS Access的内容:
import pyodbc
conn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D:\PILOT_DATA.accdb;')
cursor = conn.cursor()
cursor.execute('select * from p_inventor')
for row in cursor.fetchall():
print (row)
根据错误,它找不到数据源名称,因此我将'DRIVER'更改为'DSN'
import pyodbc
conn = pyodbc.connect(r'DSN={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D:\PILOT_DATA.accdb;')
cursor = conn.cursor()
cursor.execute('select * from p_inventor')
for row in cursor.fetchall():
print (row)
但是没有帮助。我收到以下错误:
pyodbc.Error: ('IM010', '[IM010] [Microsoft][ODBC Driver Manager] Data source name too long (0) (SQLDriverConnect)')
我尝试过的其他解决方法是同时使用python 32位和64位
这里有版本详细信息:
知道如何将Python连接到ACCESS数据库真的很有帮助。在此先感谢!
根据pyodbc docs,您需要设置一个ODBC,并且可以像这样检查它(如@Parfait所说;]]
import pyodbc
[x for x in pyodbc.drivers() if x.startswith('Microsoft Access Driver')]
如果将Office 365安装为“即点即用”(C2R),则某些Office组件将存储在非Office应用程序不可见的“隔离环境”中。 Access数据库引擎是这些组件之一。