UsePythonVersion@0 - Utilizar a tarefa V0 da versão python

Utilize esta tarefa para transferir ou selecionar uma versão do Python para ser executada num agente e, opcionalmente, adicioná-la ao PATH.

Syntax

# 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.
# Use Python Version v0
# Retrieves the specified version of Python from the tool cache. Optionally add it to 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.

Entradas

versionSpec - Especificação da versão
string. Obrigatório. Valor predefinido: 3.x.

Especifica o intervalo de versões ou a versão exata de uma versão do Python a utilizar com a sintaxe do intervalo de versões do SemVer. Saiba mais sobre o SemVer.


disableDownloadFromRegistry - Desativar a transferência de versões a partir do registo do GitHub
boolean. Valor predefinido: false.

Desativa a transferência de versões python em falta a partir do registo do Github Actions. Este valor booleano só deve ser true se utilizar uma instalação local do Python.


allowUnstable - Permitir a transferência de versões instáveis
boolean. Opcional. Utilize quando disableDownloadFromRegistry = false. Valor predefinido: false.

Transfere versões instáveis do Python a partir do registo de versões python do Github Actions , se estiver definido como true.


githubToken - Token do GitHub para GitHub Actions registo python
string. Opcional. Utilize quando disableDownloadFromRegistry = false.

Especifica o token do GitHub que impõe o limite de pedidos anónimos no registo de versões python do Github Actions. Deixar esta opção vazia pode causar falhas de transferência. Não é necessário se utilizar uma instalação local do Python.


addToPath - Adicionar ao PATH
boolean. Valor predefinido: true.

Prepara a versão do Python obtida para a variável de ambiente PATH para a disponibilizar em tarefas ou scripts subsequentes sem utilizar a variável de saída.


architecture - Arquitetura
string. Obrigatório. Valores permitidos: x86, x64. Valor predefinido: x64.

Especifica a arquitetura de destino (x86 ou x64) do interpretador python.


Opções de controlo de tarefas

Todas as tarefas têm opções de controlo para além das entradas de tarefas. Para obter mais informações, veja Opções de controlo e propriedades de tarefas comuns.

Variáveis de saída

Esta tarefa define as seguintes variáveis de saída, que pode consumir em passos, tarefas e fases a jusante.

pythonLocation
O diretório da distribuição do Python instalada. Utilize-o em tarefas subsequentes para aceder a esta instalação do Python.

Observações

Utilize esta tarefa para transferir ou selecionar uma versão do Python para ser executada num agente e, opcionalmente, adicioná-la ao PATH.

Pré-requisitos

  • Um agente alojado pela Microsoft com versões lado a lado do Python instaladas ou um agente autoalojado com Agent.ToolsDirectory configurado (veja FAQ).
  • A transferência de versões python não é suportada em agentes autoalojados.

Esta tarefa falhará se não forem encontradas versões do Python no Agent.ToolsDirectory. As versões do Python disponíveis em agentes alojados na Microsoft podem ser encontradas aqui.

Nota

As versões x86 e x64 do Python estão disponíveis em agentes windows alojados pela Microsoft, mas não em agentes Linux ou macOS.

A partir da versão 0.150 da tarefa, as especificações da versão também aceitarão pypy2 ou pypy3.

A partir da versão 0.213.1 da tarefa, as especificações da versão também aceitarão pypy2.x ou pypy3.x.

Se a tarefa for concluída com êxito, a variável de saída da tarefa conterá o diretório da instalação do Python:

Captura de ecrã a mostrar a variável de saída.

Depois de executar esta tarefa com "Adicionar ao PATH", o python comando nos scripts subsequentes será para a versão mais elevada disponível do intérprete que corresponde à especificação e arquitetura da versão.

As versões do Python instaladas nas imagens do Ubuntu e macOS alojadas na Microsoft seguem a estrutura de symlinking para sistemas semelhantes a Unix definidos no PEP 394.

Por exemplo, python3.11 é o intérprete real do Python 3.11.

python3 está ligado a esse intérprete e python é uma symlink para esse symlink.

Nas imagens do Windows alojadas na Microsoft, o intérprete é apenas python.

Para agentes alojados na Microsoft, o x86 é suportado apenas no Windows. Isto acontece porque o Windows pode executar executáveis compilados para a arquitetura x86 com o subsistema WoW64. O Ubuntu alojado e o macOS alojado executam sistemas operativos de 64 bits e executam apenas Python de 64 bits.

Como posso configurar um agente autoalojado para utilizar esta tarefa?

Importante

A transferência de versões python não é suportada em agentes autoalojados. Só pode utilizar versões pré-instaladas.

A versão do Python pretendida tem de ser adicionada à cache de ferramentas no agente autoalojado para que a tarefa possa utilizá-la. Normalmente, a cache de ferramentas está localizada no _work/_tool diretório do agente; em alternativa, o caminho pode ser substituído pela variável AGENT_TOOLSDIRECTORYde ambiente . Nesse diretório, crie a seguinte estrutura de diretório com base na sua versão do Python:

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

Deve version number seguir o formato de 1.2.3. Deve platform ser x86 ou x64. Devem tool files ser os ficheiros de versão de Python deszipados. Deve {platform}.complete ser um ficheiro de 0 bytes com o aspeto x86.complete ou x64.complete e significa que a ferramenta foi instalada corretamente na cache.

Como exemplo completo e concreto, eis o aspeto de uma transferência completa do Python 3.11.4 para x64 na cache de ferramentas:

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

Saiba mais sobre a cache de ferramentas.

Para que os scripts funcionem como em agentes alojados na Microsoft, utilize a estrutura de symlinking do PEP 394 em sistemas semelhantes a Unix.

Tenha também em atenção que a versão ZIP incorporada do Python requer configuração adicional para módulos instalados, incluindo pip. Se possível, recomendamos que utilize o instalador completo para obter uma pipinstalação python compatível.

Requisitos

Requisito Description
Tipos de pipeline YAML, Compilação clássica, Versão clássica
É executado em Agente, DeploymentGroup
Exigências Nenhuma
Capacidades Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes na tarefa.
Restrições de comandos Esta tarefa é executada com as seguintes restrições de comandos: restritas
Variáveis de tabelas definidas Esta tarefa tem permissão para definir as seguintes variáveis: pythonLocation, PATH
Versão do agente 2.182.1 ou superior
Categoria da tarefa Ferramenta
Requisito Description
Tipos de pipeline YAML, Compilação clássica, Versão clássica
É executado em Agente, DeploymentGroup
Exigências Nenhuma
Capacidades Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes na tarefa.
Restrições de comandos Qualquer
Variáveis de tabelas definidas Qualquer
Versão do agente Todas as versões de agente suportadas.
Categoria da tarefa Ferramenta