UsePythonVersion@0 - 使用 Python 版本 v0 任务

使用此任务下载或选择要在代理上运行的 Python 版本,并可以选择将其添加到 PATH。

语法

# Use Python version v0
# Use the specified version of Python from the tool cache, optionally adding it to the PATH.
- task: UsePythonVersion@0
  inputs:
    versionSpec: '3.x' # string. Required. Version spec. Default: 3.x.
    #disableDownloadFromRegistry: false # boolean. Disable downloading releases from the GitHub registry. Default: false.
    #allowUnstable: false # boolean. Optional. Use when disableDownloadFromRegistry = false. Allow downloading unstable releases. Default: false.
    #githubToken: # string. Optional. Use when disableDownloadFromRegistry = false. GitHub token for GitHub Actions python registry. 
    #addToPath: true # boolean. Add to PATH. Default: true.
  # Advanced
    architecture: 'x64' # 'x86' | 'x64'. Required. Architecture. Default: x64.
# Use Python version v0
# Use the specified version of Python from the tool cache, optionally adding it to the PATH.
- task: UsePythonVersion@0
  inputs:
    versionSpec: '3.x' # string. Required. Version spec. Default: 3.x.
    #addToPath: true # boolean. Add to PATH. Default: true.
  # Advanced
    architecture: 'x64' # 'x86' | 'x64'. Required. Architecture. Default: x64.

输入

versionSpec - 版本规范
string。 必填。 默认值:3.x

使用 SemVer 的版本范围语法指定要使用的 Python 版本的版本范围或确切版本。 详细了解 SemVer


disableDownloadFromRegistry - 禁用从 GitHub 注册表下载版本
boolean。 默认值:false

禁用从 Github Actions 注册表下载缺少的 Python 版本。 仅当使用 Python 的本地安装时,才应 true 此布尔值。


allowUnstable - 允许下载不稳定版本
boolean。 可选。 当 disableDownloadFromRegistry = false时使用。 默认值:false

如果设置为 ,请从 true


githubToken - GitHub Actions python 注册表的 GitHub 令牌
string。 可选。 当 disableDownloadFromRegistry = false时使用。

指定在 Github Actions python 版本注册表中强制实施匿名请求限制的 GitHub 令牌。 将此留空可能会导致下载失败。 如果使用 Python 的本地安装,则不需要。


addToPath - 添加到 PATH
boolean。 默认值:true

将检索到的 Python 版本追加到 PATH 环境变量,使其在后续任务或脚本中可用,而无需使用输出变量。


architecture - 体系结构
string。 必填。 允许的值:x86x64。 默认值:x64

指定 Python 解释器的目标体系结构(x86x64)。


任务控制选项

除了任务输入,所有任务都有控制选项。 有关详细信息,请参阅 控件选项和常见任务属性

输出变量

此任务定义以下 输出变量,可以在下游步骤、作业和阶段中使用。

pythonLocation
已安装的 Python 分发版的目录。 在后续任务中使用此配置访问此 Python 安装。

注解

使用此任务下载或选择要在代理上运行的 Python 版本,并可以选择将其添加到 PATH。

先决条件

如果在 Agent.ToolsDirectory中找不到 Python 版本,则此任务将失败。 可在此处 找到Microsoft托管代理上的可用 Python 版本。

注释

x86 和 x64 版本的 Python 在 Microsoft 托管的 Windows 代理上提供,但在 Linux 或 macOS 代理上不可用。

从任务版本 0.150 起,版本规范也将接受 pypy2pypy3

从任务版本 0.213.1 起,版本规范也将接受 pypy2.xpypy3.x

如果任务成功完成,则任务的输出变量将包含 Python 安装的目录:

输出变量的屏幕截图。

使用“添加到 PATH”运行此任务后,后续脚本中的 python 命令将用于与版本规范和体系结构匹配的最高可用版本的解释器。

Microsoft托管的 Ubuntu 和 macOS 映像上安装的 Python 版本遵循 PEP 394中定义的类似 Unix 的系统符号链接结构。

例如,python3.11 是 Python 3.11 的实际解释器。

python3 符号链接到该解释器,python 是该符号链接的符号链接。

在Microsoft托管的 Windows 映像上,解释器只是 python

对于Microsoft托管代理,x86 仅在 Windows 上受支持。 这是因为 Windows 可以使用 WoW64 子系统运行为 x86 体系结构编译的可执行文件。托管 Ubuntu 和托管 macOS 运行 64 位作系统,仅运行 64 位 Python。

如何配置自承载代理以使用此任务?

重要

自承载代理不支持下载 python 版本。 只能使用预安装的版本。

需要将所需的 Python 版本添加到自承载代理上的工具缓存中,以便任务可以使用它。 通常,工具缓存位于代理 _work/_tool 目录下;或者,该路径可由环境变量 AGENT_TOOLSDIRECTORY重写。 在该目录下,基于 Python 版本创建以下目录结构:

$AGENT_TOOLSDIRECTORY/
    Python/
        {version number}/
            {platform}/
                {tool files}
            {platform}.complete

version number 应遵循 1.2.3的格式。 platformx86x64tool files 应该是解压缩的 Python 版本文件。 {platform}.complete 应该是一个 0 字节文件,它看起来像 x86.completex64.complete,并且只是表示工具已正确安装在缓存中。

作为完整而具体的示例,下面是 Python 3.11.4 for x64 的完整下载在工具缓存中的外观:

$AGENT_TOOLSDIRECTORY/
    Python/
        3.11.4/
            x64/
                {tool files}
            x64.complete

详细了解 工具缓存

若要使脚本像在Microsoft托管的代理上一样工作,请在类似 Unix 的系统上使用来自 PEP 394 的符号链接结构。

另请注意,Python 的可嵌入 ZIP 版本需要为已安装的模块 pip额外的配置。 如果可能,我们建议使用 完整安装程序 来获取与 pip兼容的 Python 安装。

要求

要求 说明
管道类型 YAML,经典版本,经典版本
运行时间 代理,DeploymentGroup
需求 没有
功能 此任务不满足作业中后续任务的任何要求。
命令限制 此任务使用以下 命令限制运行: 受限
Settable 变量 此任务有权 设置以下变量:pythonLocation、PATH
代理版本 2.182.1 或更高版本
任务类别 工具
要求 说明
管道类型 YAML,经典版本,经典版本
运行时间 代理,DeploymentGroup
需求 没有
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任何
Settable 变量 任何
代理版本 所有支持的代理版本。
任务类别 工具