使用pyodbc连接IBM i服务器失败,pyodbc.drivers()返回空列表
解决pyodbc连接IBM i时的IM002错误
问题重现
使用以下代码连接IBM i服务器时:
connection = pyodbc.connect( DRIVER='{iSeries Access ODBC Driver}', SYSTEM='192.111.111.111', UID='LUKESKYWALKER', PWD='TATOOINE123') cursor = connection.cursor()
触发错误:
pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben (0) (SQLDriverConnect)')
执行print(pyodbc.drivers())返回空列表,重装pyodbc后问题依旧。
解决方案
安装对应版本的IBM i Access ODBC驱动
pyodbc仅作为ODBC接口,无法直接连接IBM i,必须依赖官方提供的iSeries Access ODBC驱动。需根据系统架构(32/64位)下载匹配的驱动安装包并完成安装。安装后可通过Windows的ODBC数据源管理器(odbcad32.exe,注意32位和64位版本的不同路径)确认驱动是否存在。匹配Python与驱动的位数
确保Python的位数(32/64位)和安装的ODBC驱动位数完全一致。例如64位Python必须搭配64位驱动,否则pyodbc无法识别到驱动。验证驱动识别状态
重新运行print(pyodbc.drivers()),若输出中包含{iSeries Access ODBC Driver}(或对应版本的驱动名称),说明驱动已被正确识别。核对连接字符串的驱动名称
连接字符串中的DRIVER参数必须与pyodbc.drivers()返回的驱动名称完全一致,部分新版本驱动可能命名为{IBM i Access ODBC Driver},需注意名称准确性。
内容的提问来源于stack exchange,提问作者Lukas Fürst
相关产品推荐
相关产品推荐

