如何在Azure Pipeline中正确指定待运行的Python文件路径?
解决Azure Pipeline引用仓库中Python脚本的问题
核心问题
你遇到的文件不存在错误,本质是代理机器的工作目录里没有拉取到目标Python脚本——要么是没正确检出仓库,要么是路径引用有误。
分步解决
确保仓库被正确检出
如果脚本和你的Pipeline在同一个仓库:
显式添加检出任务(避免默认检出逻辑失效):steps: - checkout: self fetchDepth: 1 # 按需调整拉取深度,全量拉取可去掉此参数此时脚本的本地路径应为:
$(Build.SourcesDirectory)/Test2852/hello_world.py如果脚本在另一个仓库(比如你提供的
MIR仓库):
先在Pipeline开头定义仓库资源,再执行检出:resources: repositories: - repository: MIRRepo type: git name: MI/MIR # 对应你的仓库标识:Company项目下的MIR仓库 ref: main # 替换成实际分支名 steps: - checkout: MIRRepo path: 'MIR' # 将仓库检出到代理机器的$(Pipeline.Workspace)/MIR目录下此时脚本路径应为:
$(Pipeline.Workspace)/MIR/Test2852/hello_world.py
验证文件实际位置
在执行PythonScript任务前,添加bash任务查看目录结构,确认文件是否存在:- bash: | ls -la $(Build.SourcesDirectory) ls -la $(Pipeline.Workspace) displayName: '检查目录结构'根据输出的实际路径调整
scriptPath即可。正确配置PythonScript任务
以同仓库场景为例,最终任务配置:- task: PythonScript@0 inputs: scriptSource: 'filePath' scriptPath: '$(Build.SourcesDirectory)/Test2852/hello_world.py'
关键注意事项
- 不要直接用远程URL作为
scriptPath,PythonScript任务仅支持代理机器本地的文件路径。 $(Build.SourcesDirectory)是当前检出仓库的根目录,$(Pipeline.Workspace)是所有检出资源的根目录,根据实际场景选择对应变量。
内容的提问来源于stack exchange,提问作者frank
相关产品推荐
相关产品推荐

