【发布时间】:2018-09-13 06:30:48
【问题描述】:
我正在尝试将数据从一个非常简单的 Access 文件中获取到 Python 代码中。我按照视频中的说明进行操作:https://www.youtube.com/watch?v=zw9P2wSnoIo
我的代码如下:
import pypyodbc
con=pypyodbc.connect('DRIVER={Microsoft Access Driver(*.mdb)};UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;{FIL=MS Access};DriverId=25;{DefaultDir=C:/Users/climate1/Documents/Test};DBQ=C:/Users/climate1/Documents/Test/dogs1.mdb;')
cursor=con.cursor()
cursor.execute("SELECT * FROM doggos")
for row in cursor,fetchall():
print(row)
但它似乎无法找到正确的驱动程序,我收到此错误:
文件“doggos.py”,第 5 行,在 con=pypyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb)};UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;{FIL =MS Access};DriverId=25;{DefaultDir=C:/Users/climate1/Documents/Test};DBQ=C:/Users/climate1/Documents/Test/dogs1.mdb;') init 中的文件“C:\Users\climate1\Documents\SaraCode\lib\site-packages\pypyodbc.py”,第 2454 行 self.connect(connectString, autocommit, ansi, timeout, unicode_results, readonly) 文件“C:\Users\climate1\Documents\SaraCode\lib\site-packages\pypyodbc.py”,第 2507 行,在连接中 check_success(self, ret) 文件“C:\Users\climate1\Documents\SaraCode\lib\site-packages\pypyodbc.py”,第 1009 行,在 check_success ctrl_err(SQL_HANDLE_DBC,ODBC_obj.dbc_h,ret,ODBC_obj.ansi) 文件“C:\Users\climate1\Documents\SaraCode\lib\site-packages\pypyodbc.py”,第 985 行,在 ctrl_err 引发错误(状态,err_text) pypyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified')
我对 python 并不陌生,但我对 windows 和 Access 都相当陌生。我正在使用 python 版本 3.6.3 并使用 pip install 下载了 pypyodbc。
我尝试过在 32 位和 64 位之间返回和第四位,并且还玩过一些基本的语法内容(正斜杠与反斜杠等)
【问题讨论】:
-
我尝试将语法更改为上面的语法,但我仍然遇到同样的错误。当我检查我的驱动程序时,其中之一是“Microsoft Access Driver (*mdb)”,这是我正在调用的驱动程序,所以我不确定它为什么找不到它。
-
我刚刚检查过,我的计算机是 64 位操作员,并且该驱动器在我的 ODBD 管理员中不存在 64 位。我怎样才能让它在 64 位系统上工作?
标签: python python-3.x ms-access pypyodbc