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

Linux(Ubuntu)下如何通过iODBC用Python连接数据库?

在Ubuntu下通过iODBC使用Python连接HFSQL Classic数据库

方法1:重新编译pyodbc以链接iODBC

pyodbc默认会关联unixODBC,你需要从源码编译并指定iODBC的库路径:

  • 卸载已安装的pyodbc(如果存在):
    pip uninstall -y pyodbc
    
  • 确保安装编译依赖:
    sudo apt-get install build-essential python3-dev
    
  • 通过pip编译安装pyodbc,指定iODBC的头文件和库路径:
    pip install pyodbc --global-option=build_ext --global-option="-I/usr/include/iodbc" --global-option="-L/usr/lib/x86_64-linux-gnu" --global-option="-liodbc"
    
  • 验证链接情况:
    运行以下命令检查pyodbc是否链接了iODBC库:
    ldd $(python -c "import pyodbc; print(pyodbc.__file__)")
    
    输出中应显示libiodbc.so,而非libodbc.so。也可在Python中验证连接:
    import pyodbc
    conn = pyodbc.connect("DSN=你的HFSQL DSN名称")
    print(pyodbc.SQLGetInfo(conn, pyodbc.SQL_DRIVER_NAME))
    conn.close()
    

方法2:使用原生支持iODBC的iodbc库

iodbc是专门封装iODBC API的Python库,无需依赖unixODBC:

  • 安装iodbc库:
    pip install iodbc
    
  • 连接示例:
    import iodbc
    
    # 连接HFSQL数据库
    conn = iodbc.connect('DSN=你的HFSQL DSN名称')
    cursor = conn.cursor()
    
    # 执行查询示例
    cursor.execute("SELECT * FROM 你的表名")
    for row in cursor.fetchall():
        print(row)
    
    # 关闭资源
    cursor.close()
    conn.close()
    

配置检查

确保iODBC的配置文件正确:

  • 检查/etc/odbcinst.ini,确认HFSQL驱动已正确注册:
    [HFSQL Classic Driver]
    Driver=/path/to/your/hfsql/driver.so
    Setup=/path/to/your/hfsql/setup.so
    
  • 检查/etc/iodbc.ini,确认DSN配置正确:
    [YourHFSQLDSN]
    Driver=HFSQL Classic Driver
    Database=/path/to/your/hfsql/database
    
  • 用iodbctest "DSN=YourHFSQLDSN"再次验证连接正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:15:02