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

Azure DevOps流水线部署Azure Functions遇ModuleNotFoundError求助

排查Azure DevOps流水线部署Azure Functions时的ModuleNotFoundError: holidays问题

1. 验证流水线依赖安装的路径与文件存在性

  • 检查流水线中执行pip install -r requirements.txt的步骤,确认命令指向的是正确的文件路径。如果近期调整过代码目录结构,流水线里的相对路径可能失效,导致pip无法读取到requirements.txt。
  • 可以在安装依赖前添加ls(Linux代理)或dir(Windows代理)命令,输出当前工作目录的文件列表,直接验证requirements.txt是否存在。

2. 查看流水线依赖安装日志

  • 打开Azure DevOps流水线的构建日志,定位到依赖安装步骤,确认holidays==0.32是否被成功安装:
    • 如果日志中完全没有该包的安装记录,说明pip未正确读取requirements.txt;
    • 如果存在安装失败提示(如网络超时、版本不兼容),针对性解决问题,比如添加国内PyPI源:pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple。

3. 确认流水线的Python版本环境

  • 本地使用Python 3.9,但流水线代理的Python版本可能被意外修改(比如代理自动更新、其他任务篡改环境变量)。检查流水线中UsePythonVersion任务的配置,确保指定版本为3.9。
  • 在依赖安装步骤前添加python --version命令,输出当前使用的Python版本,确保与本地开发环境一致。

4. 检查部署包的依赖完整性

  • 下载流水线生成的部署包(.zip文件),解压后查看site-packages目录,确认holidays文件夹是否存在。如果不存在,说明依赖未被正确打包进部署包:
    • 确保流水线使用func azure functionapp publish命令部署,或Azure DevOps的Azure Functions部署任务勾选了包含构建输出的相关选项,保证依赖被纳入部署包。

5. 排查requirements.txt的格式问题

  • 若requirements.txt存在编码异常(如UTF-8带BOM)、多余空格或换行,可能导致pip无法解析。直接将本地可正常运行的requirements.txt内容复制替换到Azure Repo的对应文件,避免格式错误。

6. 清理缓存避免残留影响

  • 在流水线的依赖安装命令中添加--no-cache-dir参数,强制重新安装所有依赖:pip install -r requirements.txt --no-cache-dir,避免旧缓存干扰。
  • 登录Azure Portal,进入函数应用的平台设置 -> 常规设置,点击重启应用,清理运行环境的残留缓存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:32:37