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

使用Python3.11的Azure Function中ODBC Driver18未找到问题求助

解决Azure Function(Linux计划)连接Azure SQL时ODBC Driver 18缺失问题

问题根源

Azure Function Linux环境的基础镜像默认未预装SQL Server ODBC驱动,pyodbc作为Python库依赖系统级驱动文件才能建立数据库连接,这是报错的核心原因。另外注意你的报错信息中驱动名称后有多余空格('ODBC Driver 18 for SQL Server '),这也会导致驱动查找失败,需先修正连接字符串里的驱动名格式。

可行解决方案

方案1:Post-Deployment脚本自动安装驱动(适用于Consumption/Elastic Premium计划)

在Function App根目录创建post_deployment.sh脚本,内容如下:

#!/bin/bash
# 安装依赖工具
apt-get update && apt-get install -y curl apt-transport-https
# 添加微软官方APT源
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list
# 静默安装ODBC Driver 18
apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql18
# 安装unixODBC开发包(部分场景下pyodbc编译需要)
apt-get install -y unixodbc-dev

然后在Function App的配置 > 应用程序设置中,添加新设置:

  • 名称:POST_DEPLOYMENT_SCRIPT_PATH
  • 值:post_deployment.sh
    每次部署完成后,平台会自动执行该脚本安装驱动。

方案2:自定义Docker镜像(适用于Premium/Dedicated计划)

如果你的Function运行在Premium或专属(App Service)计划,可以构建包含驱动的自定义镜像:

  1. 创建Dockerfile:
# 基于官方Azure Function Python 3.11镜像
FROM mcr.microsoft.com/azure-functions/python:4-python3.11

# 设置自动接受EULA
ENV ACCEPT_EULA=Y

# 安装ODBC Driver 18及依赖
RUN apt-get update && apt-get install -y curl apt-transport-https \
    && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
    && curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list \
    && apt-get update && apt-get install -y msodbcsql18 unixodbc-dev

# 复制Function代码和依赖文件
COPY . /home/site/wwwroot
RUN cd /home/site/wwwroot && pip install -r requirements.txt
  1. 将镜像构建并推送至Azure容器注册表(ACR),再配置Function App使用该镜像运行。

验证驱动安装

可以添加一段简单代码确认驱动是否可用:

import pyodbc

def main(req):
    # 打印可用驱动
    available_drivers = pyodbc.drivers()
    print(f"已安装ODBC驱动:{available_drivers}")
    # 正常输出应包含"ODBC Driver 18 for SQL Server"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 22:41:05