Compartilhar via


Gerenciar pacotes Python necessários com requirements.txt

Se você compartilhar seu projeto python com outras pessoas ou usar um sistema de build para produzir seu aplicativo Python, precisará especificar todos os pacotes externos necessários. Quando você planeja copiar seu projeto para outros locais em que precisa restaurar um ambiente, também precisa definir os pacotes dependentes necessários.

A abordagem recomendada para especificar pacotes python dependentes externos é usar um arquivo de requisitos (readthedocs.org). Esse arquivo contém uma lista de comandos pip que instalam todas as versões necessárias de pacotes dependentes para seu projeto. O comando mais comum é pip freeze > requirements.txt. Esse comando registra a lista de pacotes atual do seu ambiente no requirements.txt arquivo.

Um arquivo de requisitos contém versões precisas de todos os pacotes instalados. Você pode usar arquivos de requisitos para congelar os requisitos de um ambiente. Usando versões precisas do pacote, você pode reproduzir facilmente seu ambiente em outro computador. Os arquivos de requisitos incluem pacotes, mesmo que eles estejam instalados com um intervalo de versão, como dependência de outro pacote ou usando um instalador diferente do pip.

Pré-requisitos

Tecnicamente, qualquer nome de arquivo pode ser usado para acompanhar os requisitos. No entanto, o Visual Studio fornece suporte específico para o arquivo de requisitos chamado "requirements.txt". Você pode usar o -r <full path to file> argumento ao instalar um pacote para especificar seu nome preferencial para o arquivo.

Instalar dependências listadas no requirements.txt

Se você carregar um projeto que tenha um requirements.txt arquivo, poderá instalar todas as dependências de pacote listadas no arquivo.

  1. No Gerenciador de Soluções, expanda o projeto, e expanda o nó Ambientes do Python.

  2. Localize o nó de ambiente para o qual você deseja instalar os pacotes. Clique com o botão direito do mouse no nó e selecione Instalar a partir de requirements.txt.

  3. Você pode monitorar o processo de instalação do pacote na janela Saída :

    Captura de tela que mostra a saída da instalação dos pacotes python de um arquivo de texto de requisitos.

    A saída lista todos os pacotes necessários instalados, juntamente com as atualizações necessárias para os comandos pip afetados e a disponibilidade de versões pip mais recentes.

Instalar dependências em um ambiente virtual

Você também pode instalar as dependências do pacote python em um ambiente virtual existente.

  1. No Gerenciador de Soluções, expanda seu projeto e, em seguida, expanda o nó Ambientes do Python.

  2. Localize o nó de ambiente virtual para o qual você deseja instalar os pacotes. Clique com o botão direito do mouse no nó e selecione Instalar a partir de requirements.txt.

Se você precisar criar um ambiente virtual, consulte Usar ambientes virtuais.

Gerar o arquivo requirements.txt

Se todos os pacotes necessários do Python para seu projeto já estiverem instalados em um ambiente, você poderá gerar o requirements.txt arquivo no Visual Studio.

  1. No Gerenciador de Soluções, expanda o projeto e depois o nó Ambientes do Python.

  2. Localize o nó de ambiente para o qual você deseja gerar o arquivo de requisitos. Clique com o botão direito do mouse no nó e selecione Gerar arquivo requirements.txt.

Atualizar ou adicionar entradas a um arquivo de requirements.txt existente

Se o arquivo requirements.txt já existir, o Visual Studio exibirá um prompt com várias opções.

Captura de tela do prompt exibido quando o arquivo de texto de requisitos já existe, com opções para atualizar ou adicionar entradas ou substituir o arquivo.

  • Substitua o arquivo inteiro: substitua todos os itens, comentários e opções definidos no requirements.text arquivo.
  • Atualizar entradas existentes: atualize os especificadores de versão no requirements.text arquivo para corresponder à versão instalada no momento.
  • Atualizar e adicionar entradas: atualize os requisitos existentes no requirements.text arquivo e acrescente todos os novos requisitos de pacote ao final do arquivo.

O Visual Studio executa pip para detectar os requisitos atuais do pacote para o ambiente e então atualiza o arquivo requirements.txt de acordo com sua seleção.

Instalar manualmente as dependências do pacote

Se o pip não instalar uma dependência de pacote definida em seu requirements.txt arquivo, toda a instalação falhará.

Você tem duas opções para resolver esse problema:

  • Edite manualmente o requirements.txt arquivo para excluir o pacote com falha e execute novamente o processo de instalação.

  • Use as opções de comando pip para se referir a uma versão instalável do pacote.

Atualizar o arquivo de requisitos usando pip wheel

Se você usar o pip wheel comando para compilar uma dependência, poderá adicionar a opção --find-links <path> ao arquivo requirements.txt .

  1. Chame o pip wheel comando para compilar a lista de dependências necessárias:

    pip wheel azure
    

    A saída mostra as rodas criadas para os pacotes coletados:

    Downloading/unpacking azure
        Running setup.py (path:C:\Project\env\build\azure\setup.py) egg_info for package azure
    
    Building wheels for collected packages: azure
        Running setup.py bdist_wheel for azure
        Destination directory: c:\project\wheelhouse
    Successfully built azure
    Cleaning up...
    
  2. Acrescente as opções find-links e no-index, juntamente com o requisito de versão do pacote ao arquivo requirements.txt.

    type requirements.txt
    --find-links wheelhouse
    --no-index
    azure==0.8.0
    
  3. Execute o processo de instalação pip com o arquivo de requisitos atualizado:

    pip install -r requirements.txt -v
    

    A saída acompanha o progresso do processo de instalação:

    Downloading/unpacking azure==0.8.0 (from -r requirements.txt (line 3))
        Local files found: C:/Project/wheelhouse/azure-0.8.0-py3-none-any.whl
    Installing collected packages: azure
    Successfully installed azure
    Cleaning up...
        Removing temporary dir C:\Project\env\build...