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

Azure DevOps流水线运行Python单元测试找不到已安装的requests模块如何解决

故障原因

  • Azure DevOps 中每个script任务都是独立的 Shell 会话,上一个任务执行的source venv/bin/activate虚拟环境激活操作仅在当前会话生效,不会延续到后续的script任务。
  • 依赖安装步骤将 requests 等包安装到了自建的 venv 虚拟环境中,单元测试步骤调用的是系统全局的 Python 3 解释器,全局环境未安装对应依赖,因此触发模块找不到的报错。

解决方法

方案1:合并依赖安装与测试执行步骤(最便捷)

将单元测试逻辑放到依赖安装的同一个script块中,共用激活后的虚拟环境,修改后的流水线配置如下:

- stage: Build
  displayName: Build stage
  jobs:
  - job: 'Build'
    pool:
      vmImage: '$(vmImageName)'
    steps:
    - task: UsePythonVersion@0
      inputs:
        versionSpec: '$(pythonVersion)'
      displayName: 'Use Python $(pythonVersion)'
    - script: |
          python3 -m venv venv
          source venv/bin/activate
          python3 -m pip install --upgrade pip
          pip3 install setup
          pip3 install -r requirements.txt
          # 同一脚本内直接执行测试,虚拟环境仍生效
          python3 PoC1/tests.py
      workingDirectory: $(projectRoot)
      displayName: 'Install requirements and run unittests'

方案2:每个步骤单独激活虚拟环境

如果需要拆分步骤保证可读性,在执行测试的步骤前先执行虚拟环境激活操作:

- script: |
    source venv/bin/activate
    python3 PoC1/tests.py
  workingDirectory: $(projectRoot)
  displayName: 'Run unittests'

方案3:取消虚拟环境直接全局安装依赖

流水线运行环境是一次性的隔离实例,无需做环境隔离的情况下可以直接省略虚拟环境创建,把依赖装到全局Python环境中,修改依赖安装的脚本部分即可:

python3 -m pip install --upgrade pip
pip3 install setup
pip3 install -r requirements.txt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:27:04