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

Azure DevOps流水线多阶段执行时找不到已安装Python模块如何解决?

问题根因

Azure DevOps 多阶段流水线的每个Stage默认运行在完全独立的运行环境:

  • 如果使用微软托管Agent,每个Stage都会分配全新的虚拟机节点,上一个Stage的所有环境变更都会被重置
  • 如果使用自托管Agent,默认每个Stage运行结束后也会清理工作目录和临时环境配置
    你在Env_prep阶段安装的pip依赖仅生效于该阶段的运行环境,到Tests阶段自然会找不到已安装的模块。

解决方案

方案1:合并依赖安装步骤到测试阶段(最推荐,复杂度最低)

如果你的依赖安装仅为测试环节服务,不需要跨多个后续阶段复用,直接将pip安装逻辑合并到测试Job即可:

trigger: none
parameters:
  - name: "input_files"
    type: object
    default: ['a-rg', 't-rg', 'd-rg', 'p-rg']

stages:
  - stage: 'Tests'
    jobs:
      - job: 'Run_tests'
        steps:
          - script: |
              python -m pip install --upgrade pip
              python -m pip install -r requirements.txt
          - script: |
              python -m pytest -v tests/variableGroups_tests.py

方案2:保留多阶段结构,使用流水线缓存复用依赖

如果确实需要拆分环境准备和测试环节,可通过Azure DevOps流水线缓存能力存储pip依赖,避免重复安装:

trigger: none
parameters:
  - name: "input_files"
    type: object
    default: ['a-rg', 't-rg', 'd-rg', 'p-rg']

# 定义pip缓存路径,不同系统路径不同,以下为Linux示例
variables:
  PIP_CACHE_DIR: $(Pipeline.Workspace)/.pip

stages:
  - stage: 'Env_prep'
    jobs:
      - job: "install_requirements"
        steps:
          # 先拉取缓存
          - task: Cache@2
            inputs:
              key: 'python | "$(Agent.OS)" | requirements.txt'
              restoreKeys: |
                python | "$(Agent.OS)"
              path: $(PIP_CACHE_DIR)
            displayName: 缓存pip依赖
          - script: |
              python -m pip install --upgrade pip
              python -m pip install -r requirements.txt
  - stage: 'Tests'
    jobs:
      - job: 'Run_tests'
        steps:
          # 测试阶段先拉取之前缓存的依赖
          - task: Cache@2
            inputs:
              key: 'python | "$(Agent.OS)" | requirements.txt'
              restoreKeys: |
                python | "$(Agent.OS)"
              path: $(PIP_CACHE_DIR)
            displayName: 读取pip缓存
          - script: |
              # 这里安装会直接读缓存,速度极快
              python -m pip install --upgrade pip
              python -m pip install -r requirements.txt
          - script: |
              python -m pytest -v tests/variableGroups_tests.py

注意事项
  • 所有阶段需要指定完全一致的Python版本,避免因解释器版本差异导致模块寻址失败
  • 如使用自托管Agent,不建议通过关闭工作目录清理的方式复用环境,容易出现历史依赖残留污染流水线运行结果的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:36:07