使用Python和ODBC Driver连接DB2时遇DLL初始化失败错误求助
解决DB2 ODBC驱动DLL初始化失败(错误IM003)的问题
场景与错误详情
- 环境:Python 3.10.2(x64)、Windows 11 x64、VS Code,已通过odbcad32完成ODBC数据源配置
- 执行代码:
import pyodbc connectionDB = pyodbc.connect('DSN=DATA_SOURCE_NAME')
- 错误信息:
InterfaceError: ('IM003', '[IM003] 指定驱动无法加载,系统错误 1114: 动态链接库(DLL)初始化例程失败。(IBM DB2 ODBC DRIVER - DB2COPY1, C:\PROGRA~1\IBM\SQLLIB\BIN\DB2CLIO.DLL). (160) (SQLDriverConnect)')
解决方法
1. 确认位数匹配
用的是x64 Python,必须对应x64版本的DB2 ODBC驱动:
- 检查DB2安装目录,确保是
C:\Program Files\IBM而非C:\Program Files (x86)\IBM - 配置数据源时,运行
C:\Windows\System32\odbcad32.exe(x64版),别用C:\Windows\SysWOW64\odbcad32.exe(x86版)
2. 修复DB2驱动安装
- 运行DB2安装目录下的
setup.exe,选“修改/修复”,重新注册DLL文件 - 手动注册DB2CLIO.DLL:以管理员身份打开命令提示符,执行:
regsvr32 "C:\PROGRA~1\IBM\SQLLIB\BIN\DB2CLIO.DLL"
注册失败的话,检查文件是否存在或权限是否足够
3. 检查系统环境变量
- 确认
PATH环境变量中包含C:\PROGRA~1\IBM\SQLLIB\BIN,且该路径在其他可能冲突的DLL路径之前 - 重启VS Code或命令提示符,让环境变量生效
4. 验证数据源配置
打开x64版odbcad32,选中配置的数据源,点击“测试连接”,先确保数据源本身能正常连接
5. 更新pyodbc版本
卸载旧版本,安装最新适配x64 Python的版本:
pip uninstall pyodbc pip install pyodbc --upgrade
内容的提问来源于stack exchange,提问作者Rakesh Kushwaha
相关产品推荐
相关产品推荐

