Trabalho com a Janela Interativa do Python no Visual Studio

O Visual Studio fornece uma janela de Loop de Leitura, Avaliação e Impressão (REPL) interativa para cada um de seus ambientes do Python, que melhora o REPL obtido com o comando python.exe na linha de comando. A Janela Interativa do Python permite inserir código Python arbitrário e visualizar resultados de forma imediata. Essa abordagem de codificação ajuda você a aprender e experimentar APIs e bibliotecas e a desenvolver de maneira interativa um código funcional para incluir em projetos.

Captura de tela da janela de Loop de Leitura, Avaliação e Impressão (REPL) interativa do Python no Visual Studio 2022.

Captura de tela da janela de Loop de Leitura, Avaliação e Impressão (REPL) interativa do Python no Visual Studio.

O Visual Studio tem diversos modos de REPL do Python à sua disposição:

REPL Descrição Edição Depuração Imagens
Standard O REPL padrão, que se comunica com o Python diretamente Edição Standard (com múltiplas linhas e mais) Sim, por meio de $attach Não
Depurar REPL padrão, que se comunica com o processo depurado do Python Edição padrão Somente depuração Não
IPython O REPL se comunica com o back-end do IPython Comandos do IPython, funcionalidades do Pylab Não Sim, embutido no REPL
IPython sem Pylab O REPL se comunica com o back-end do IPython IPython padrão Não Sim, em uma janela separada

Este artigo descreve os modos REPL Padrão e Depuração. Para obter detalhes sobre os modos do IPython, confira Usar o REPL do IPython.

Para obter um passo a passo em detalhes com exemplos, incluindo as interações com o editor, como Ctrl+Enter, confira Usar a janela Interativa REPL.

Pré-requisitos

Ainda não há suporte ao Visual Studio para Mac. Para obter mais informações, consulte O que está acontecendo com o Visual Studio para Mac? O Visual Studio Code no Windows, no Mac e no Linux funciona perfeitamente com o Python por meio das extensões disponíveis.

Abrir a Janela Interativa

Existem várias maneiras de abrir a Janela Interativa para um ambiente do Python.

  • Na janela Ambientes do Python:

    1. Selecione Exibir>Outras Janelas>Ambientes do Python para abrir a janela Ambientes do Python (ou use o atalho de teclado Ctrl+K>Ctrl+`).

    2. Na janela Ambientes do Python, selecione um ambiente e realize a comutação para a página de Visão Geral do ambiente.

    3. Na página de Visão Geral, selecione a opção Abrir Janela Interativa.

    Captura de tela que mostra como usar a opção Abrir Janela Interativa para o ambiente selecionado no Visual Studio 2022.

    Captura de tela que mostra como usar a opção Abrir Janela Interativa para o ambiente selecionado no Visual Studio.

  • No menu Exibir na ferramenta do Visual Studio, selecione Outras Janelas>Janela Interativa do Python:

    Captura de tela que mostra como usar a opção de menu Exibir Janela Interativa do Python no Visual Studio 2022.

    Captura de tela que mostra como usar a opção de menu Exibir Janela Interativa do Python no Visual Studio.

  • No menu Depurar na barra de ferramentas do Visual Studio, selecione Executar <Projeto | Arquivo> em Interativo do Python ou use o atalho de teclado Shift+Alt+F5. É possível abrir uma Janela Interativa para o Arquivo de Inicialização no projeto ou para arquivos independentes:

    Captura de tela que mostra como usar a opção de menu Executar Projeto em Interativo do Python do menu Depurar no Visual Studio 2022.

    Captura de tela que mostra como usar a opção de menu Executar Projeto em Interativo do Python do menu Depurar no Visual Studio.

Outra opção é enviar o código que você está gravando no editor do Visual Studio para a Janela Interativa. Essa abordagem é descrita em Enviar código para a Janela Interativa.

Explorar as opções da Janela Interativa

É possível obter o controle sobre vários aspectos da Janela Interativa, como a localização dos arquivos de script de inicialização e como as teclas de direção funcionam no ambiente da janela. Para obter acesso às opções, selecione Ferramentas>Opções>Python>Janelas Interativas:

Captura de tela das opções de Janelas Interativas do Python no Visual Studio.

As opções são descritas em detalhes em Python Interactive Window options for Visual Studio.

Usar a Janela Interativa

Na Janela Interativa, é possível começar a inserir o código linha por linha no prompt de comando >>> de REPL do Python. À medida que você inserir cada linha, o Visual Studio realizará a execução do código, incluindo a importação dos módulos necessários e a definição de variáveis.

Quando o Visual Studio detectar que uma linha de código não realiza a formação de uma instrução completa, a solicitação de código sofre alteração para a continuação de REPL .... Essa solicitação indica que você precisa inserir mais linhas de código para concluir o bloco de instruções. O Visual Studio aguarda a sintaxe de fechamento antes de tentar executar o bloco de código.

Quando você definir uma instrução for, a primeira linha de código iniciará o bloco for e terminará com dois-pontos. O bloco pode consistir em uma ou mais linhas de código que definem as tarefas a serem concluídas durante o loop for. Ao selecionar Enter em uma linha em branco, a Janela Interativa fecha o bloco e o Visual Studio executa o código.

Comparação do REPL da linha de comando

A Janela Interativa aprimora a experiência do REPL usual da linha de comando do Python ao recuar automaticamente as instruções que pertencem a um escopo circundante. Ambas as abordagens permitem usar as teclas de direção para navegar pelo código inserido. A Janela Interativa também fornece itens com múltiplas linhas, enquanto o REPL da linha de comando fornece somente linhas únicas.

Comando meta

A Janela Interativa oferece suporte a diversos comandos meta. Todos os comandos meta começam com o símbolo do cifrão $. É possível inserir $help para visualizar uma lista de comandos meta e $help <command> para obter detalhes de uso de um comando específico. A tabela apresentada a seguir resume os comandos meta.

Metacomando Descrição
$$ Inserção de um comentário, que será útil para deixar comentários sobre o código durante a sessão.
$cls, $clear Limpeza do conteúdo da janela do editor, mas o histórico e o contexto de execução permanecem intactos.
$help Exibe uma lista de comandos ou a ajuda sobre um comando específico.
$load Carregamento de comandos do arquivo e execução até eles estarem concluídos.
$mod Comutação do escopo atual para o nome do módulo especificado.
$reset Restauração do ambiente de execução para o estado inicial, mas o histórico é mantido.
$wait Espera pelo menos o número especificado de milissegundos.

Além disso, é possível ampliar os comandos com extensões do Visual Studio ao implementar e exportar a classe IInteractiveWindowCommand. Para obter mais informações, faça a revisão de um (exemplo no GitHub).

Comutar o escopo da Janela Interativa

Por padrão, a Janela Interativa para um projeto tem como escopo o Arquivo de Inicialização do projeto, como se você tivesse executado o arquivo do programa no prompt de comando. Para um arquivo independente, o escopo é definido para esse arquivo. Durante a sessão do REPL, é possível usar o menu suspenso Escopo do módulo para alterar o escopo quando desejar:

Captura de tela que mostra como usar o menu suspenso Escopo do módulo para alterar o escopo na Janela Interativa no Visual Studio 2022.

Captura de tela que mostra como usar o menu suspenso Escopo do módulo para alterar o escopo na Janela Interativa.

Ao importar um módulo, como import importlib, opções aparecem no menu suspenso Escopo do módulo para a comutação para qualquer escopo nesse módulo. Uma mensagem na Janela Interativa reporta as alterações para o novo escopo, para que seja possível para você acompanhar como chegou a um determinado estado durante a sessão ao realizar a revisão do histórico de comando.

Se você inserir o comando dir() em um escopo, o Visual Studio exibirá identificadores válidos nesse escopo, incluindo nomes de funções, classes e variáveis. A imagem apresentada a seguir mostra o resultado do comando dir() para o escopo importlib:

Captura de tela que mostra a saída na Janela Interativa para o escopo importlib no Visual Studio 2022.

Captura de tela que mostra a saída na Janela Interativa para o escopo importlib.

Enviar código para a Janela Interativa

Além de trabalhar diretamente na Janela Interativa, é possível enviar código do editor do Visual Studio para a janela. Esse comando é útil para o desenvolvimento de código iterativo ou evolucionário, incluindo o teste do código durante o desenvolvimento.

  1. Abra um arquivo de código no editor do Visual Studio e selecione uma parte ou todo o código.

  2. Clique com o botão direito do mouse no código selecionado e escolha Enviar para o Interativo (ou use o atalho de teclado Ctrl+E, E).

    Captura de tela que mostra como usar a opção de menu Enviar para o Interativo no Visual Studio 2022.

    Captura de tela que mostra como usar a opção de menu Enviar para o Interativo no Visual Studio.

Modificação e execução do código

Após enviar o código para a Janela Interativa e realizar a exibição da saída, você poderá modificar o código e testar as alterações. Use as teclas de direção para cima e para baixo para rolar até o código no histórico de comando da janela. Realize a modificação do código e a execução do código atualizado ao selecionar Ctrl+Enter.

Ao fazer alterações, se você selecionar Enter no final de uma instrução de código completa, o Visual Studio executará o código. Se a instrução do código não estiver completa, o Visual Studio inserirá uma nova linha na janela.

Salvar o código e remover as solicitações

Após concluir o trabalho no código, você poderá selecionar o código atualizado na Janela Interativa e colá-lo novamente no arquivo de projeto para salvar o trabalho.

Ao colar o código da Janela Interativa no editor, o Visual Studio remove o prompt de comando >>> do REPL e a solicitação de continuação ..., por padrão. Esse comportamento permite transferir o código da janela para o editor com facilidade.

É possível alterar o comportamento com a opção Colar remove as solicitações do REPL para a Janela Interativa:

  1. Selecione Ferramentas>Opções para abrir a caixa de diálogo Opções.

  2. Expanda a seção Editor de Texto>Python>Formatação.

  3. Desmarque a opção Colar remove as solicitações do REPL.

  1. Selecione Ferramentas>Opções para abrir a caixa de diálogo Opções.

  2. Expanda a seção Editor de Texto>Python>Avançado.

  3. Desmarque a opção Colar remove as solicitações do REPL.

Quando você desmarca a opção, os caracteres da solicitação são retidos no código colado da janela. Para obter mais informações, confira Opções: Opções diversas.

Revisar o comportamento do IntelliSense

A Janela Interativa inclui sugestões do IntelliSense com base em objetos ativos, diferentemente do editor de código, no qual o IntelliSense se baseia somente na análise do código-fonte. Como resultado, as sugestões do IntelliSense na Janela Interativa são mais corretas, especialmente com um código gerado de forma dinâmica. A desvantagem é que as funções com efeitos colaterais, como mensagens de registro em log, podem afetar a experiência de desenvolvimento.

É possível realizar o ajuste do comportamento do Intellisense ao usar as opções de Conclusão:

  1. Selecione Ferramentas>Opções para abrir a caixa de diálogo Opções.

  2. Expanda a seção Python>Janelas Interativas.

  3. Ajuste as configurações no grupo Modo de Conclusão, como Nunca avaliar as expressões ou Ocultar as sugestões de análise estática.

Para obter mais informações, confira Opções: Opções da Janela Interativa.