You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pyodbc从SQL Server下载数据时遇InterfaceError(IM002)错误求助

解决pyodbc连接SQL Server的InterfaceError (IM002)问题

这个IM002错误本质是ODBC驱动管理器找不到你指定的驱动程序,核心问题出在连接字符串里的Driver={SQL Server}配置上——这是一个非常老旧的ODBC驱动名称,现在已经被微软的新驱动替代,而且大概率你的系统里没有安装这个旧驱动。

具体解决步骤:

  1. 确认已安装的ODBC驱动版本
    打开Windows的ODBC数据源管理器:

    • 如果你用64位Python,运行odbcad64.exe
    • 32位Python则运行odbcad32.exe
      切换到「驱动程序」标签,查看有没有类似ODBC Driver 17 for SQL Server或ODBC Driver 18 for SQL Server的条目(推荐用17或18版本,兼容性更好)。
  2. 修改连接字符串的驱动名称
    将原来的Driver={SQL Server}替换为你系统中已安装的驱动名称,比如用ODBC Driver 17的话,修正后的代码如下:

    import pyodbc
    import pandas as pd
    
    # 修正后的连接字符串
    conn_str = (
        "Driver={ODBC Driver 17 for SQL Server};"
        "Server=database.net;"
        "Database=Spectrometry;"
        "uid=user;pwd=password;"
    )
    conn = pyodbc.connect(conn_str)
    
    Users = pd.read_sql("SELECT * FROM Users", conn)
    Activity = pd.read_sql("SELECT * FROM Activity", conn)
    
  3. 确保Python位数和驱动位数匹配
    比如你安装了64位的ODBC驱动,就必须用64位的Python环境,否则驱动管理器依然找不到对应的驱动。

额外注意点:

  • 如果你的SQL Server要求加密连接(比如Azure SQL数据库),可能需要在连接字符串里加上Encrypt=yes;TrustServerCertificate=no;参数,避免出现加密相关的错误。
  • 尽量保持连接字符串格式整洁,避免多行拼接时出现冗余空格,减少语法问题。

内容的提问来源于stack exchange,提问作者PassaroBagante

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 11:32:44