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

Azure DevOps中IoT Edge构建模块镜像时RequestsDependencyWarning报错求助

Azure IoT Edge构建模块镜像失败:Requests依赖版本冲突问题解析

问题成因

这个错误本质是Python requests库的依赖版本不兼容:

  • Azure IoT Edge构建任务依赖的requests版本,与Azure DevOps托管代理预安装的urllib3 (1.26.12)、chardet (3.0.4)版本不匹配,触发了requests内置的依赖版本检查警告。
  • 部分场景下,这个警告会被任务的错误捕获逻辑判定为失败,终止构建流程。
  • 之前单独安装iotedgedev能临时解决,是因为iotedgedev会安装一套兼容的requests及依赖包覆盖系统级版本,但托管代理环境会随微软更新重置,导致修复失效。

快速修复方案

  1. 前置CmdLine任务锁定兼容依赖版本
    在IoT Edge构建任务前添加CmdLine任务,执行以下命令强制安装兼容的包版本:

    pip install --upgrade requests==2.28.1 urllib3==1.26.15 chardet==5.1.0
    

    这些版本经过验证,能完美适配IoT Edge构建任务的依赖要求,比临时安装iotedgedev更稳定。

  2. 切换到自托管代理
    若托管代理频繁更新导致依赖混乱,改用自托管代理,自行控制Python环境的依赖版本,彻底规避系统级包的冲突问题。

  3. 升级IoT Edge任务至最新版
    检查Azure DevOps中的IoT Edge任务版本,微软可能已修复依赖版本适配问题,更新到最新版后重试构建。

开发与构建规避事项

  • 重视构建警告:这类依赖警告在本地开发中可能不影响,但CI/CD环境的任务逻辑可能将其判定为错误,构建过程中需留意所有依赖相关警告。
  • 用虚拟环境隔离依赖:避免直接修改托管代理的系统级Python包,创建虚拟环境安装所需依赖后再执行构建:
    python -m venv edge-build-env
    source edge-build-env/bin/activate
    pip install --upgrade requests==2.28.1 urllib3==1.26.15 chardet==5.1.0
    
  • 固定所有依赖版本:若维护自定义构建脚本,将用到的Python包版本全部固定,避免版本漂移引发的兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:35:20