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

Azure Functions(Linux Python3.11)无法找到ODBC Driver 18求助

解决Linux版Azure Functions中ODBC驱动缺失的问题

问题根源

Linux环境的Azure Functions默认未预装SQL Server ODBC驱动,这就是你调用pyodbc.drivers()返回空列表,且无法找到ODBC Driver 18 for SQL Server的直接原因。

可行解决方案

1. 部署后脚本自动安装驱动

利用Azure Functions的部署后脚本机制,每次部署时自动安装驱动,步骤如下:

  • 在项目根目录创建.deployment文件,内容:
[config]
command = bash deploy.sh
  • 同目录创建deploy.sh脚本(适配Debian/Ubuntu系基础镜像):
#!/bin/bash

# 更新源并安装ODBC驱动18依赖
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
ACCEPT_EULA=Y apt-get install -y msodbcsql18
apt-get install -y unixodbc-dev
  • 注意:消费计划下实例会动态回收,重启后驱动可能丢失;高级/专用计划更适配这种方式,但每次部署会重复安装,增加部署耗时。

2. 自定义Docker镜像(生产环境推荐)

构建包含ODBC驱动的自定义镜像,部署到Azure Functions,稳定性更高:

  • 创建Dockerfile,基于官方Python3.11函数镜像:
FROM mcr.microsoft.com/azure-functions/python:4-python3.11

ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true

# 安装ODBC驱动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 && \
    ACCEPT_EULA=Y apt-get install -y msodbcsql18 && \
    apt-get install -y unixodbc-dev && \
    rm -rf /var/lib/apt/lists/*

# 安装Python依赖
COPY requirements.txt /
RUN pip install --no-cache-dir -r /requirements.txt

# 复制函数代码
COPY . /home/site/wwwroot
  • 构建镜像并推送到Azure容器注册表,再配置函数应用使用该镜像部署。

3. 验证驱动安装状态

部署完成后,可在函数代码中添加调试代码确认:

import pyodbc
print("已安装的ODBC驱动:", pyodbc.drivers())

若输出包含ODBC Driver 18 for SQL Server,则安装成功。

额外注意事项

  • 确保连接字符串中的驱动名称与实际安装版本完全匹配,比如安装18版就用ODBC Driver 18 for SQL Server,不要写错版本号。
  • 消费计划下优先选择自定义镜像方案,避免实例重启后驱动丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 20:04:58