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

Azure DevOps Pipelines无法找到requirements.txt问题及相关疑问求助

问题解决与疑问解答

一、搞定找不到requirements.txt的报错

问题根因

从报错路径/home/vsts/work/1/s/requirements/requirements.txt和你的项目结构来看,十有八九是这两个原因:

  1. 代码没正确拉取:虽然Azure Pipelines默认会自动checkout代码,但如果你的Pipeline有自定义配置,可能跳过了这一步;或者你本地的requirements文件夹根本没提交到Azure Repos(比如被.gitignore挡住了)。
  2. 路径认知错误:Azure Pipelines会把myreponame里的所有内容直接拉到$(Build.SourcesDirectory),而不是把整个myreponame文件夹放进去。也就是说,你的requirements文件夹应该直接在$(Build.SourcesDirectory)下面,但报错说明它不在。

解决方案

1. 先确认代码已提交

先去Azure Repos的仓库里看看,requirements/requirements.txt是不是真的存在——如果本地有但没推上去,那肯定找不到。

2. 强制添加checkout步骤

在你的Pipeline的steps最开头加上这段,确保代码被拉下来:

steps:
- checkout: self
  fetchDepth: 1

3. 先查清楚文件在哪

在安装依赖的步骤前加个查看目录的命令,搞清楚实际路径:

- script: |
    echo "当前目录: $(pwd)"
    ls -la $(Build.SourcesDirectory)
    ls -la $(Build.SourcesDirectory)/requirements
  displayName: '确认文件结构'

跑完这个步骤,你就能明确看到requirements.txt到底在不在预期位置。

4. 修正pip命令

如果确认路径没问题,用绝对路径的话要保证变量正确,或者直接用相对路径(Azure Pipelines默认工作目录就是代码根目录):

- script: |
    python -m pip install --upgrade pip
    pip install -r $(Build.SourcesDirectory)/requirements/requirements.txt
  displayName: '安装依赖'

或者直接用相对路径:

pip install -r requirements/requirements.txt

不确定的话,先跑pwd确认当前目录是不是代码根目录。

二、关于requirements.txt的疑问解答

1. 必须运行requirements.txt吗?为啥?

不是“必须”,但非常建议这么做,原因很实在:

  • 环境一致:保证CI/CD代理上的包版本和你本地开发、训练模型的版本完全一样,避免“本地跑的好好的,CI里直接报错”,对机器学习来说这尤其重要——不同版本的numpy、scikit-learn可能直接导致模型结果不对或者训练失败。
  • 可重复:让整个流程的环境能复现,后面别人接手或者重新跑Pipeline时,能快速搭出一模一样的环境。
  • 省事儿:手动装依赖容易漏装、装错版本,用requirements.txt一键搞定,效率高还不出错。
    哪怕你不用代理当服务器或部署源,CI里的单元测试、模型训练、打包这些步骤都需要依赖,所以还是得装。

2. 能用Docker镜像或者其他方式替代吗?

当然可以,这甚至是MLOps的最佳实践,给你两种常用方式:

方式一:用预构建的Docker镜像

你可以先做个包含所有依赖的Docker镜像,然后在Pipeline里直接用这个镜像当环境,就不用每次都装依赖了:

  1. 写个Dockerfile:
FROM python:3.9-slim
WORKDIR /app
COPY requirements/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
  1. 把镜像推到Azure容器注册表(ACR)或者其他镜像仓库,然后在Pipeline里用:
pool:
  vmImage: ubuntu-latest
container: 你的ACR名称.azurecr.io/你的机器学习镜像:latest

方式二:用Azure Pipelines自带的Python虚拟环境任务

除了手动建虚拟环境,你可以用官方的任务来管理,更规范:

steps:
- task: UsePythonVersion@0
  inputs:
    versionSpec: '3.9'
    addToPath: true
- script: |
    python -m venv .venv
    source .venv/bin/activate
    pip install --upgrade pip
    pip install -r requirements/requirements.txt
  displayName: '在虚拟环境里装依赖'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 20:22:05