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

Python Azure Function部署后ZBar依赖缺失报错的解决方法

解决Azure Functions中pyzbar依赖zbar共享库的问题

问题根源很明确:pyzbar是zbar的Python封装库,Linux环境下必须先安装系统级的libzbar0共享库才能正常运行,但Azure Functions的Linux x64默认环境里没有预装这个库,所以只装pyzbar会触发找不到依赖的报错。

下面是两种可行的解决办法:

方法一:用部署后脚本安装系统库

  • 在你的函数应用根目录新建一个post_deploy.sh脚本文件,内容如下:
    sudo apt-get update && sudo apt-get install -y libzbar0
    
  • 在local.settings.json里添加配置,让Azure部署时自动执行这个脚本:
    {
      "Values": {
        "SCM_DO_BUILD_DURING_DEPLOYMENT": "true",
        "POST_DEPLOYMENT_SCRIPT": "./post_deploy.sh"
      }
    }
    
  • 注意:如果是通过Azure门户部署,提前通过Kudu高级工具的控制台给脚本加执行权限:chmod +x post_deploy.sh

方法二:用自定义Docker镜像(适合复杂环境)

如果你的应用还有其他系统级依赖,直接用自定义镜像更稳妥:

  • 创建Dockerfile,基于官方Azure Functions Python镜像,提前装好zbar:
    FROM mcr.microsoft.com/azure-functions/python:4-python3.11
    
    ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
        AzureFunctionsJobHost__Logging__Console__IsEnabled=true
    
    # 安装zbar系统库
    RUN apt-get update && apt-get install -y libzbar0 && rm -rf /var/lib/apt/lists/*
    
    COPY requirements.txt /home/site/wwwroot/
    RUN pip install --no-cache-dir -r /home/site/wwwroot/requirements.txt
    
    COPY . /home/site/wwwroot/
    
  • 把镜像构建好推送到Azure容器注册表,再把你的函数应用配置成使用这个自定义镜像运行即可。

额外注意点

  • 你的requirements.txt只需要保留pyzbar,不用加zbar(zbar是系统库,不是Python包)
  • 部署完成后,可以通过Kudu的SSH连接到容器,执行dpkg -l | grep zbar确认libzbar0已经安装成功

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 13:12:47