求助:解决Linux虚拟机自托管代理上UsePythonVersion@0任务失败问题
解决方法
方案1:在自托管代理上预先安装Python 3.6
自托管代理不会像微软托管代理那样预装多版本Python,直接在Linux虚拟机上手动安装:
- Debian/Ubuntu系统执行:
sudo apt update && sudo apt install python3.6 python3.6-pip -y - RHEL/CentOS系统执行:
sudo yum install python36 python36-pip -y
安装完成后,流水线中可以直接使用python3.6命令,无需依赖UsePythonVersion任务。
方案2:移除UsePythonVersion任务,直接调用已安装的Python
修改流水线的步骤部分,删掉UsePythonVersion@0任务,直接在脚本里指定Python版本:
steps: - script: | cd gear-price-publisher # 用python3.6调用pip和gunicorn python3.6 -m pip install -r requirements.txt python3.6 -m gunicorn -w 1 -b 0.0.0.0:80 controller:app displayName: 'Run Python Code'
方案3:配置GitHub令牌解决下载限制(如果坚持用UsePythonVersion任务)
报错提到匿名下载GitHub资源可能触发限制,可通过添加GitHub PAT解决:
- 在Azure DevOps流水线变量中添加一个名为
GitHubPat的秘密变量,值为拥有Python版本仓库访问权限的GitHub个人访问令牌 - 修改
UsePythonVersion任务,注入环境变量:
- task: UsePythonVersion@0 inputs: versionSpec: '3.6' addToPath: true env: GITHUB_TOKEN: $(GitHubPat)
同时确保自托管代理所在的虚拟机能正常访问GitHub的Python版本仓库,若有网络代理或防火墙需提前配置放行。
内容的提问来源于stack exchange,提问作者Manish
相关产品推荐
相关产品推荐

