Compartilhar via


Publicar e baixar pacotes do Python com o Azure Artifacts

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Usando o Azure Artifacts, você pode publicar e baixar pacotes de feeds e registros públicos, como PyPi. Este guia de início rápido orienta você na criação de um feed, na configuração do projeto e no gerenciamento de pacotes do Python no feed do Azure Artifacts.

Pré-requisitos

Produto Requisitos
Azure DevOps - Uma organização do Azure DevOps.
- Um projeto do Azure DevOps .
– Baixar e instalar Python.

Obter o código

  1. Se você não tiver seu próprio projeto python, poderá usar o projeto python de exemplo a seguir. Caso contrário, você poderá pular para a próxima seção:

    https://github.com/Azure-Samples/azure-stack-hub-flask-hello-world
    
  2. Para criar sua roda e distribuição de origem, execute os seguintes comandos no diretório do projeto:

    pip install --upgrade build
    python -m build
    
  3. Se o projeto python tiver um arquivo setup.py , você também poderá criar seu pacote usando:

    python setup.py sdist bdist_wheel
    

Criar um feed

  1. Entre em sua organização do Azure DevOps e navegue até seu projeto.

  2. Selecione Artefatos e, em seguida, selecione Criar Feed.

  3. Forneça um Nome para o feed, escolha a opção de Visibilidade que define quem pode visualizar seus pacotes. Marque a opção Incluir pacotes de fontes públicas comuns se você quiser incluir pacotes de fontes como nuget.org ou npmjs.com. Já para o Escopo, decida se o feed deve ter escopo restrito ao seu projeto ou à organização inteira.

  4. Selecione Criar quando terminar.

    Captura de tela que mostra as seleções para criar um novo feed no Azure DevOps Services.

  1. Entre no servidor do Azure DevOps e vá para o projeto.

  2. Selecione Artefatos e, em seguida, selecione Criar Feed.

  3. Forneça um Nome para o feed, escolha a opção de Visibilidade que define quem pode visualizar seus pacotes. Marque a opção Incluir pacotes de fontes públicas comuns se você quiser incluir pacotes de fontes como nuget.org ou npmjs.com. Já para o Escopo, decida se o feed deve ter escopo restrito ao seu projeto ou à organização inteira.

  1. Selecione Criar quando terminar.

    Captura de tela que mostra as seleções para criar um novo feed no Azure DevOps 2022.

Nota

Por padrão, o Serviço de Build para o projeto (por exemplo: projectName Build Service (orgName)) é atribuído o papel de Leitor de Feed e Upstream (Colaborador) quando um novo feed é criado.

Conectar-se ao seu feed

  1. Entre em sua organização do Azure DevOps e navegue até seu projeto.

  2. Selecione Artefatos, selecione o feed no menu suspenso e, em seguida, selecione Conectar ao feed.

  3. Na seção Python, selecione twine.

  4. Se esta é a primeira vez que você usa o Azure Artifacts com o Twine, selecione Obter as ferramentas e siga as instruções para baixar o Python e instalar o Twine e o keyring de artefatos.

  5. Crie um arquivo pypirc no diretório inicial e cole o snippet fornecido na seção de instalação do Project . Seu arquivo deve ter esta aparência:

    [distutils]
    Index-servers =
        FEED_NAME
    
    [FEED_NAME]
    Repository = https://pkgs.dev.azure.com/ORGANIZATION_NAME/PROJECT_NAME/_packaging/FEED_NAME/pypi/upload/
    

Nota

Se o arquivo .pypirc já incluir credenciais para o índice PyPI público, recomendamos remover a [pypi] seção para evitar a publicação acidental de pacotes privados no PyPI.

Publicar pacotes em seu feed

  1. No diretório do projeto, execute o seguinte comando para criar distribuições de origem e roda:

    python setup.py sdist bdist_wheel
    
    
  2. Para publicar seu pacote, use o comando abaixo. Certifique-se de usar o sinalizador -r FEED_NAME para evitar a publicação acidental no PyPI:

    twine upload -r <FEED_NAME> dist/*
    

Instalar pacotes do seu repositório

  1. Para instalar pacotes do feed, execute o seguinte comando no diretório do projeto:

    pip install
    
  2. Para instalar um pacote específico, substitua o espaço reservado pelo nome do pacote do feed:

    pip install <PACKAGE_NAME>