pyodbc를 사용하여 MS Access .mdb 데이터베이스에 액세스하려고했습니다. 내가 드라이버 내 DSN에 등록 된 나는에 pyodbc.dataSources()
pyodbc.dataSources()에 나열되어 있어도 드라이버를 찾을 수 없습니다.
sources = pyodbc.dataSources()
dsns = list(sources.keys())
dsns.sort()
sl = []
for dsn in dsns:
sl.append('%s [%s]' % (dsn, sources[dsn]))
print('\n'.join(sl))
결과에서 찾을 수 있으며, ODBC 드라이버를 설정 한 : 그래서
Excel Files [Microsoft Excel Driver (*.xls)]
MS Access DB [Microsoft Access Driver (*.mdb, *.accdb)]
MS Access Database [Microsoft Access Driver (*.mdb)]
dBASE Files [Microsoft dBase Driver (*.dbf)]
, 나는하여 DB에 액세스하려고
Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
:이 오류가 계속,
con = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=H:\access-panda\data\myDB.mdb;')
그러나이 명령을 사용하여
문제를 해결하려했지만 행운이 없습니다. 내가 뭐 놓친 거 없니?
예, 파이썬과 pyodbc는 64 비트입니다 ... sysWOW64에서 ODBC 드라이버를 업데이트했지만 문제가 해결되지 않았습니다. 결국 나는 python과 pyodbc를 모두 32 비트로 다운 그레이드했다. pyodbc-64 비트를 올바른 드라이버를 참조하도록 설정하는 방법이 있습니까? –
@SaberAlex - 64 비트 Python/pyodbc는 64 비트 드라이버에서만 작동합니다. 32 비트 Office가 설치된 경우 32 비트 Access ODBC 드라이버를 사용하려면 Python 응용 프로그램을 32 비트로 실행해야합니다. –
내 pyodbc-64 비트가 32 비트 드라이버를 계속 참조합니다. –