无法使用 Python 打开访问数据库

Unable to Open access database using Python

我无法使用 python 打开访问数据库。下面是代码和错误信息。我什至尝试去控制面板检查 odbc 文件的路径指向哪里。它显示在正确的路径中。 %windir%\syswow64\odbcad32.exe 不确定如何避免此消息,下面的代码还显示了可用的驱动程序。

import pyodbc


def show_odbc_sources():
    sl = []
    source = odbc.SQLDataSources(odbc.SQL_FETCH_FIRST)
    while source:
        dsn, driver = source
        sl.append('%s [%s]' % (dsn, driver))
        source = odbc.SQLDataSources(odbc.SQL_FETCH_NEXT)
    sl.sort()
    print('\n'.join(sl))


if __name__ == '__main__':
    show_odbc_sources()

conn = pyodbc.connect(r'driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\Users\username\Desktop\E CX DB.accdb;')
cursor = conn.cursor()

我得到的错误:

Excel Files [Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)]
MS Access Database [Microsoft Access Driver (*.mdb, *.accdb)]
Sample Amazon Redshift DSN [Amazon Redshift (x64)]




---------------------------------------------------------------------------
InterfaceError                            Traceback (most recent call last)
<ipython-input-12-816aa9101ab7> in <module>()
     16         show_odbc_sources()
     17 
---> 18 conn = pyodbc.connect(r'driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\Users\username\Desktop\E CX DB.accdb;')
     19 cursor = conn.cursor()

InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

That is the driver i have which is 32 bit version.

看来您是 运行 Python 的 64 位版本,因此 pyodbc 看不到 Access ODBC 驱动程序的 32 位版本。您需要切换到 32 位版本的 Python 或切换到 64 位版本的 Access ODBC 驱动程序。