Login
Login

Como instalar o pip no Windows

Como instalar o pip no Windows
Awais Khan
Redator técnico
Programação Python O sistema Windows
24.10.2025
Reading time: 8 min

pip é uma ferramenta que torna a instalação e o gerenciamento de pacotes Python uma tarefa simples. De iniciantes em Python a desenvolvedores experientes, ter essa ferramenta no seu computador com Windows é uma verdadeira mudança de jogo. Ela facilita a configuração de frameworks e bibliotecas essenciais para suas necessidades de desenvolvimento. Automatizar o gerenciamento de pacotes com o pip economiza tempo e reduz as complicações associadas às instalações manuais.

Siga este guia para aprender a configurar o pip e gerenciar seus pacotes Python de forma eficiente.

Processo de configuração do pip no Windows

Aqui estão as etapas para configurar o pip em um computador com Windows.

Etapa 1: Confirmar a instalação

Verifique se o Python está funcionando no seu dispositivo antes de iniciar a configuração do pip. Para fazer isso, abra o prompt de comando e execute:

python --version

Image1 

Se o Python não estiver instalado no seu sistema, baixe-o no site oficial.

Etapa 2: Baixar o get-pip.py

O pacote de instalação padrão do Python inclui o pip automaticamente. No entanto, caso ele tenha sido removido por engano, baixe o script get-pip.py.

Você tem duas opções: visitar a página do pip.py ou usar o comando curl para uma instalação rápida:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

Image3

Observação: reinstalar o Python para obter o pip também é uma opção. No entanto, isso pode causar conflitos com outras dependências ou configurações. Com este script, sua configuração atual do Python permanece inalterada.

Etapa 3: Executar o get-pip.py

Acesse o local do script através do prompt de comando e execute:

python get-pip.py

Image2

Isso instalará o pip no seu dispositivo sem problemas.

Etapa 4: Confirmar a instalação do pip

Valide a instalação executando:

pip --version

Image5

Este comando confirma que o pip está instalado no sistema.

Etapa 5: Adicionar o pip à variável PATH do sistema

Se o comando não for executado corretamente, atualize a variável PATH do sistema seguindo estas instruções para incluir o pip:

  • Clique com o botão direito em Este Computador ou Meu Computador e selecione Propriedades.

  • Escolha Configurações avançadas do sistema.

  • Selecione Variáveis de ambiente.

  • Em Variáveis do sistema, localize a variável Path e clique em Editar.

  • Adicione o diretório Scripts do Python ao PATH do sistema, por exemplo: C:\Python39\Scripts.

Métodos alternativos para instalar o pip no Windows

Vamos explorar algumas outras maneiras de instalar o pip facilmente no Windows.

Usando o módulo integrado ensurepip

A partir do Python 3.4, existe um módulo integrado chamado ensurepip. Com essa ferramenta, a instalação do pip é simplificada, eliminando a necessidade do script get-pip.py.

Etapa 1: Executar o ensurepip

Digite o comando abaixo para configurar o pip:

python -m ensurepip --default-pip

Etapa 2: Verificar a instalação do pip

Verifique a versão do pip com:

pip --version

Método do instalador do Python para instalar o pip

Certifique-se de marcar a opção de instalação do pip durante a configuração do Python. Veja como fazer:

Etapa 1: Baixar o instalador

Abra seu navegador preferido, acesse o site oficial do Python e baixe o arquivo de instalação mais recente.

Etapa 2: Executar o instalador

Execute o instalador baixado e certifique-se de selecionar a opção “Add Python to PATH” durante a configuração.

Etapa 3: Instalar o pip

Durante o processo de instalação, marque a opção “Install pip”.

Image4

Etapa 4: Confirmar que o pip foi instalado

Quando a instalação for concluída, verifique se o pip foi instalado com:

pip --version

Ajustar a versão do pip: atualizar ou reverter

O pip pode ser ajustado conforme suas necessidades, seja atualizando-o ou revertendo para uma versão anterior. Veja como fazer:

Atualizar o pip

Para atualizar o pip, execute:

python -m pip install --upgrade pip

Reverter o pip

Para voltar a uma versão anterior do pip, use:

python -m pip install pip==<version>

Substitua <version> pelo número da versão desejada (por exemplo, 21.0).

Resolvendo problemas de instalação do pip: comandos essenciais

A seguir, estão os problemas mais comuns de instalação do pip e suas soluções:

Problema 1: “pip” não é reconhecido como um comando interno ou externo

Solução: isso significa que o caminho do pip não está definido no PATH do sistema. Siga as instruções da “Etapa 5” para corrigir o problema.

Problema 2: Permissão negada

Solução: execute o prompt de comando como administrador clicando com o botão direito no ícone e escolhendo “Executar como administrador”. Em seguida, execute os comandos novamente.

Problema 3: Dependências ausentes

Solução: às vezes, ocorrem erros devido a dependências ausentes. Para corrigir isso, instale manualmente as dependências necessárias usando o pip. Exemplo:

pip install package_name

Substitua package_name pela dependência apropriada.

Usando ambientes virtuais

Usar ambientes virtuais mantém as dependências separadas e evita conflitos. Veja como usar um ambiente virtual com o pip:

Criar um ambiente virtual

python -m venv env_name

Substitua env_name pelo nome desejado do seu ambiente.

Ativar o ambiente virtual

env_name\Scripts\activate

Comandos básicos do pip

Aqui estão alguns comandos essenciais do pip:

Instalar um pacote

pip install package_name

Substitua package_name pelo nome do pacote que você deseja instalar.

Desinstalar um pacote

pip uninstall package_name

Exibir pacotes instalados

pip list

Exibir informações de um pacote

pip show package_name

Melhores práticas para o gerenciamento de pacotes

  • Use ambientes virtuais para gerenciar dependências de forma eficiente em vários projetos.

  • Verifique e atualize seus pacotes regularmente para garantir o bom funcionamento.

  • Crie arquivos requirements para simplificar o gerenciamento de dependências nos seus projetos.

Garantindo uma instalação segura do pip

Garantir a segurança dos pacotes gerenciados pelo pip é fundamental. Aqui estão algumas dicas para manter seu ambiente seguro:

  • Mantenha os projetos isolados para evitar conflitos e garantir instalações seguras.

  • Verifique a confiabilidade e a autenticidade das fontes dos pacotes antes de instalá-los. Sempre use repositórios oficiais e leia as avaliações, se disponíveis.

  • Atualize regularmente o pip e seus pacotes para se manter protegido com as últimas correções de segurança.

  • Revise suas dependências periodicamente para identificar vulnerabilidades conhecidas. Ferramentas como pip-audit podem ajudar a detectá-las e resolvê-las.

  • Siga práticas seguras de codificação e evite pacotes obsoletos ou inseguros.

Integração do pip com IDEs

O pip pode ser facilmente integrado a diversos Ambientes de Desenvolvimento Integrado (IDEs), aumentando significativamente sua produtividade no desenvolvimento:

  • VS Code: use o terminal integrado para executar comandos pip e gerenciar pacotes diretamente no editor.

  • PyCharm: otimize o gerenciamento de pacotes configurando o pip pelo interpretador do projeto. Isso simplifica o processo de instalação e gerenciamento de pacotes de acordo com as necessidades específicas do seu projeto.

  • Jupyter Notebook: utilize comandos mágicos dentro da interface do notebook para instalar pacotes diretamente. Isso oferece uma experiência integrada e fluida para gerenciar dependências enquanto você trabalha em notebooks interativos. 

Conclusão

O Windows oferece diversos métodos para instalar o pip, de acordo com suas preferências e necessidades. Seja usando o script .py, o módulo integrado ensurepip ou ativando o pip durante a instalação inicial, todos esses métodos garantem que o pip seja configurado corretamente no seu sistema.

Lembre-se de manter o pip atualizado para garantir a segurança e a eficiência do seu ambiente Python. Verifique regularmente por atualizações e mantenha o pip sempre na versão mais recente.

Além disso, em nossa Application Platform, você pode encontrar aplicativos Python como Celery, Django, FastAPI e Flask.

Programação Python O sistema Windows
24.10.2025
Reading time: 8 min

Semelhante

Rede

Entendendo as solicitações HTTP: estrutura, métodos e exemplos

HTTP é a chave para a comunicação na internet. Os métodos do protocolo HTTP permitem que clientes enviem solicitações aos servidores e que os servidores retornem respostas. Todos os sites da World Wide Web utilizam solicitações HTTP, portanto é fundamental entendê-las. Este artigo explora o conceito de solicitações HTTP, sua estrutura, métodos comuns e exemplos práticos — ajudando você a compreender como a web funciona. O que é uma solicitação HTTP? Uma solicitação HTTP é uma mensagem em que um cliente — como um navegador — solicita ao host em um servidor um recurso específico. Os clientes usam URLs nas solicitações HTTP para indicar quais recursos desejam acessar. Componentes de uma solicitação HTTP Cada solicitação HTTP é composta por três partes: Request Line (linha de solicitação) Headers (cabeçalhos) Message Body (corpo da mensagem) Request Line A request line é a primeira linha de uma solicitação HTTP. Ela inicia uma ação no servidor. Indica o método HTTP e a versão do protocolo utilizada. Além disso, inclui uma URI ou URL. Exemplo de Request Line: GET /index.html HTTP/1.1 Headers Os cabeçalhos vêm logo após a request line e fornecem informações adicionais do cliente ao servidor. Eles incluem dados como host, user agent, preferências de idioma, codificação e muito mais. O servidor usa essas informações para identificar o navegador e o sistema operacional do cliente. Os headers HTTP são case-sensitive e possuem o formato Nome: Valor. Exemplo de cabeçalhos HTTP: Host: example.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Accept: application/json, text/plain, */* Accept-Language: en-US,en;q=0.9 Accept-Encoding: gzip, deflate, br Connection: keep-alive Message Body O corpo da mensagem é usado para enviar dados ao servidor. Ele é opcional — nem todas as solicitações HTTP o possuem. Requests com corpo de mensagem geralmente usam POST. O servidor usa o body para processar os dados enviados. Métodos HTTP mais comuns Uma solicitação HTTP conecta um cliente ao servidor por diferentes razões: recuperar um recurso enviar dados atualizar informações excluir recursos Aqui estão os métodos mais usados: GET – Recuperar recursos O método GET solicita dados ao servidor. Sempre que um usuário acessa uma página, o navegador faz uma solicitação GET para obter seu conteúdo. Características do GET: cacheável seguro (safe) idempotente GET apenas lê dados e não altera nada no servidor. POST – Enviar dados POST é utilizado quando o cliente precisa enviar informações ao servidor — formulários, uploads, etc. O body contém os dados enviados. Múltiplas solicitações POST idênticas podem criar vários recursos no servidor. PUT – Atualizar recursos PUT também envia dados, mas serve para substituir informações existentes. Diferença: POST = cria PUT = atualiza PUT é idempotente — várias solicitações iguais resultam no mesmo estado. DELETE – Excluir recursos DELETE instrui o servidor a remover um recurso específico. Se o recurso for excluído com sucesso, o servidor retorna uma confirmação. DELETE também é idempotente. O que é uma resposta HTTP? Ao responder uma solicitação HTTP, o servidor envia uma HTTP response. Assim como uma solicitação, ela possui três partes: Status Line Headers Body Status Line Mostra: versão HTTP código de status mensagem associada Headers Podem incluir: data e hora tipo de conteúdo (Content-Type) detalhes do servidor políticas de cache Body É o conteúdo real retornado ao cliente: HTML JSON XML imagens arquivos Códigos de status e seus significados Os códigos de status HTTP mostram o resultado de uma solicitação. Eles têm três dígitos — o primeiro indica a categoria: Grupo Descrição 1xx Informacional — processamento continua 2xx Sucesso — solicitação concluída 3xx Redirecionamento — ação adicional necessária 4xx Erro do cliente — problema na solicitação 5xx Erro do servidor — falha ao processar Cabeçalhos HTTP e sua importância Headers fornecem informações essenciais para a comunicação entre cliente e servidor. Identificação do host Indicam qual domínio o servidor está atendendo. Cache Headers como Cache-Control e Expires controlam por quanto tempo o conteúdo deve ser armazenado. Gerenciamento de cookies Set-Cookie e Cookie gerenciam sessões e estados do usuário. Segurança Exemplos importantes: Authorization — autenticação Content-Security-Policy — proteção contra XSS Controle da resposta Headers informam se a solicitação teve sucesso ou falhou. Exemplos práticos de solicitações HTTP Todos os exemplos usam Python com a biblioteca requests. GET import requests response = requests.get("https://api.example.com/data",                         params={"param1": "value1", "param2": "value2"}) print(response.status_code) print(response.json()) POST import requests url = "https://api.example.com/users" data = {     "username": "newuser",     "email": "newuser@example.com",     "password": "securepassword" } response = requests.post(url, json=data) if response.status_code == 201:     print("User created successfully:", response.json()) else:     print("Error:", response.status_code, response.text) PUT import requests url = "https://api.example.com/users/123" data = {     "username": "updateduser",     "email": "updateduser@example.com" } response = requests.put(url, json=data) if response.status_code == 200:     print("User updated successfully:", response.json()) else:     print("Error:", response.status_code, response.text) DELETE import requests url = "https://api.example.com/users/123" response = requests.delete(url) if response.status_code == 204:     print("User deleted successfully.") else:     print("Error:", response.status_code, response.text) Conclusão As solicitações HTTP desempenham um papel crítico nas interações da web. Portanto, é essencial entender os diferentes métodos e como eles funcionam. Escolher o método certo garante uma comunicação fluida entre cliente e servidor e melhora a eficiência das aplicações web.
01 December 2025 · 6 min to read
Programação Python

Opções de linha de comando e análise de argumentos com argparse em Python

Interfaces de linha de comando (CLIs) são uma das maneiras mais rápidas e eficazes de interagir com softwares. Elas permitem que você execute comandos diretamente, resultando em processamento mais rápido e recursos avançados. Desenvolvedores frequentemente criam CLIs em Python para diversas aplicações, utilitários e scripts de automação — permitindo processar dinamicamente a entrada do usuário. É aqui que entra o módulo argparse do Python. O módulo argparse simplifica o processamento de argumentos da linha de comando, permitindo que desenvolvedores criem ferramentas interativas e fáceis de usar. Como parte da biblioteca padrão, ele permite definir, processar e validar entradas sem a necessidade de uma lógica complexa. Neste artigo, abordaremos os conceitos principais, exemplos úteis e recursos avançados do módulo argparse, para que você possa começar a construir ferramentas de linha de comando robustas imediatamente. Como usar argparse em Python para interfaces de linha de comando Passo 1: Importar o módulo Importe o módulo no seu script Python: import argparse Isso habilita o parsing de argumentos .py a partir da linha de comando. Passo 2: Criar um objeto ArgumentParser A classe ArgumentParser é a classe principal da API do módulo argparse. Para usá-la, comece criando uma instância: parser = argparse.ArgumentParser(description="A Hostman tutorial on Python argparse.") Aqui: description descreve a função do programa e será exibida quando alguém executar --help. Passo 3: Adicionar entradas e opções Defina os parâmetros que seu programa aceitará usando add_argument(): parser.add_argument('filename', type=str, help="Name of the file to process") parser.add_argument('--verbose', action='store_true', help="Enable verbose mode") Explicação: filename é obrigatório. --verbose é opcional e ativa o modo verboso. Passo 4: Fazer o parsing da entrada do usuário Use parse_args() para processar os argumentos fornecidos: args = parser.parse_args() Isso armazena os valores como atributos do objeto args. Passo 5: Acessar os dados processados Exemplo: print(f"File to process: {args.filename}") if args.verbose:     print("Verbose mode enabled") else:     print("Verbose mode disabled") Exemplos de uso do CLI Processamento de arquivo sem modo verboso python3 file.py example.txt Processamento de arquivo com modo verboso python3 file.py example.txt --verbose Exibir ajuda python3 file.py --help Exemplos comuns do uso de argparse Exemplo 1: Adicionar valores padrão Em alguns casos, argumentos opcionais precisam de valores pré-definidos. Neste exemplo, --timeout recebe um valor padrão de 30 segundos: import argparse parser = argparse.ArgumentParser(description="Demonstrating default argument values.") parser.add_argument('--timeout', type=int, default=30, help="Timeout in seconds (default: 30)") args = parser.parse_args() print(f"Timeout value: {args.timeout} seconds") Explicação Importação do módulo Criação do ArgumentParser Adição do argumento --timeout com valor padrão Parsing com parse_args() Caso 1: valor padrão usado python file.py Caso 2: valor personalizado python file.py --timeout 60 Exemplo 2: Utilizando choices O parâmetro choices permite restringir um argumento a um conjunto de valores válidos: parser.add_argument('--mode', choices=['basic', 'advanced'], help="Choose the mode of operation") Caso 1: valor válido python3 file.py --mode basic Caso 2: sem entrada python3 file.py Caso 3: valor inválido python3 file.py --mode intermediate Exemplo 3: Manipulando múltiplos valores Use nargs='+' para permitir múltiplos valores em um único argumento: parser.add_argument('--numbers', nargs='+', type=int, help="List of numbers to process") Caso 1: múltiplos números python3 file.py --numbers 10 20 30 Caso 2: um número python3 file.py --numbers 5 Caso 3: sem entrada python3 file.py Caso 4: entrada inválida python3 file.py --numbers 10 abc 20 Exemplo 4: Argumentos opcionais obrigatórios Embora argumentos com -- sejam opcionais por padrão, você pode torná-los obrigatórios com required=True: parser.add_argument('--config', required=True, help="Path to the configuration file") Caso 1: entrada válida python3 file.py --config settings.json Caso 2: argumento obrigatório ausente python3 file.py Recursos avançados Flags booleanas parser.add_argument('--debug', action='store_true', help="Enable debugging mode") Agrupando argumentos relacionados group = parser.add_argument_group('File Operations') group.add_argument('--input', type=str, help="Input file") group.add_argument('--output', type=str, help="Output file") Argumentos mutuamente exclusivos group = parser.add_mutually_exclusive_group() group.add_argument('--json', action='store_true', help="Output in JSON format") group.add_argument('--xml', action='store_true', help="Output in XML format") Conclusão O módulo argparse facilita a criação de CLIs robustos para manipular argumentos da linha de comando em Python. Desde opções simples até recursos avançados como choices e nargs, desenvolvedores podem criar ferramentas práticas, confiáveis e amigáveis ao usuário. Nomear argumentos de forma clara e escrever boas descrições torna seus scripts mais compreensíveis e fáceis de manter.
25 November 2025 · 5 min to read
Programação Python

Como usar time.sleep() em Python

Às vezes, durante a execução de um programa, é necessário fazer uma pausa: aguardar o carregamento de dados, dar tempo para o usuário inserir uma entrada ou reduzir a carga no sistema. Uma das maneiras mais simples de fazer isso em Python é com a função time.sleep(), que suspende a execução do programa por um intervalo de tempo especificado. Neste artigo, veremos como o time.sleep() funciona em Python, seus recursos e alternativas, erros comuns e quando é mais adequado usar asyncio.sleep() ou outros mecanismos de espera — especialmente em programas multithread e assíncronos. O que é a função sleep() em Python? A função sleep() faz parte da biblioteca padrão do Python e foi criada para facilitar a criação de pausas no código. Ela pertence ao módulo time e é chamada como time.sleep(), permitindo suspender temporariamente a execução do programa por um determinado número de segundos. Na prática, sleep() é útil para testes, intervalos entre requisições de API ou pausas entre mensagens. No entanto, ela não deve ser usada para tarefas de sincronização de threads ou situações que exigem controle preciso de tempo — existem ferramentas mais adequadas para isso. Como time.sleep() funciona A função time.sleep() pausa a thread atual pelo número de segundos especificado. Em um programa multithread, outras threads continuam rodando, enquanto aquela em que time.sleep() foi chamada permanece “congelada” durante o intervalo. Importante: time.sleep() bloqueia a execução do código naquele ponto, atrasando todas as operações seguintes. Usá-la de forma incorreta pode causar perda de desempenho ou até congelar a interface de um aplicativo desktop. Quando usar time.sleep() time.sleep() é usada principalmente em testes e depuração, quando é necessário adicionar um pequeno atraso — por exemplo, para verificar a resposta de uma API ou aguardar o retorno de um servidor. Também é usada para executar scripts passo a passo, dando tempo para o usuário visualizar informações ou inserir dados. Em demonstrações, tutoriais e prototipagem, time.sleep() ajuda a simular processos demorados. Quando usada com serviços externos, evita punições ou bloqueios por excesso de requisições. Mas ela não é a única maneira de pausar a execução de um programa — veja outras alternativas a seguir. Como usar time.sleep() em Python Usar time.sleep() em Python é muito simples, até mesmo para iniciantes. Mas entender seus detalhes é importante, pois eles podem afetar o desempenho ou o comportamento do programa. Sintaxe básica Para usar a função, primeiro importe o módulo time: import time time.sleep(5) Neste exemplo, o programa “dorme” por 5 segundos. O número passado pode ser inteiro ou decimal, permitindo pausas de frações de segundo. Sintaxe: time.sleep(seconds) A função não retorna nenhum valor — ela apenas suspende a execução da thread atual pelo tempo indicado. Exemplo: atraso na execução do código Um pequeno script que imprime mensagens com um intervalo de 2 segundos: import time print("First message") time.sleep(2) print("Second message") time.sleep(2) print("Third message") Durante a execução, o usuário verá uma pausa de 2 segundos entre cada mensagem. É exatamente assim que um atraso funciona em Python com time.sleep(2). Parâmetros de time.sleep() A função aceita apenas um parâmetro, mas ele pode ser um inteiro ou um float. Isso permite flexibilidade na definição das pausas. Valor em segundos O uso mais comum é passar um número inteiro representando segundos: time.sleep(10) O script pausa por 10 segundos, útil para intervalos longos ou para limitar a frequência de solicitações. Frações de segundo (milissegundos) Quando é necessária uma pausa mais curta, use um número decimal: time.sleep(0.5) Isso cria uma pausa de meio segundo. Devido a limitações do sistema operacional e do temporizador interno do Python, o atraso pode ser ligeiramente superior a 500 ms. Para sistemas em tempo real, é melhor usar temporizadores especializados. Formas alternativas de pausar em Python Embora time.sleep() seja a maneira mais popular e simples, existem outras opções mais adequadas em determinados contextos, como ao lidar com eventos externos ou múltiplas threads. 1. Usar input() para aguardar O método mais simples para parar um programa é com input(). Ele pausa a execução até que o usuário pressione Enter ou insira algum texto. print("Press Enter to continue...") input() print("Resuming program execution") Tecnicamente, não é um atraso temporizado, mas uma espera por ação do usuário. É útil durante depuração ou em scripts interativos. 2. Usar threading.Event() Em programas multithread, é possível usar objetos de sincronização como threading.Event(), que bloqueiam uma thread até que um sinal seja recebido. import threading event = threading.Event() def worker():     print("Starting work in thread")     event.wait()     print("Event received, resuming work") thread = threading.Thread(target=worker) thread.start() import time time.sleep(3) event.set() Nesse caso, a thread fica bloqueada até a chamada de event.set(). Essa abordagem é mais flexível, pois permite “acordar” a thread a qualquer momento. 3. asyncio.sleep() para programas assíncronos Em programas assíncronos (módulo asyncio), usa-se asyncio.sleep(). Diferente de time.sleep(), ela não bloqueia a thread inteira, apenas a corrotina atual, permitindo que o event loop continue executando outras tarefas. import asyncio async def main(): print("Start async work") await asyncio.sleep(2) print("2 seconds passed, resuming") asyncio.run(main()) Isso é especialmente útil quando várias funções assíncronas precisam ser executadas em paralelo. Usar time.sleep() nesse contexto bloquearia todo o event loop. Problemas comuns com time.sleep() Apesar de simples, time.sleep() pode causar bloqueios ou atrasos indesejados se usada incorretamente. Compreender seus efeitos é essencial para evitar problemas de desempenho. Bloqueio da thread principal time.sleep() bloqueia a thread em que é chamada. Se for usada na thread principal de um aplicativo com interface gráfica (como Tkinter ou PyQt), a interface pode travar. 💡 Dica:Use time.sleep() apenas em threads secundárias ou substitua por asyncio.sleep() para evitar bloqueios. Em aplicações gráficas, prefira temporizadores como QTimer ou after(). Uso em código multithread e assíncrono Em programas multithread, time.sleep() pode ser chamada independentemente em cada thread, mas não libera automaticamente o Global Interpreter Lock (GIL). A execução simultânea de outras threads depende do agendador de threads do sistema operacional. Em código assíncrono, evite chamar time.sleep() dentro de um loop de eventos (asyncio.run()), pois isso bloqueia toda a execução. Use asyncio.sleep(), que entrega o controle de volta ao agendador, permitindo que outras corrotinas rodem em paralelo. Exemplo prático: consultas periódicas a uma API Imagine um script que precisa consultar uma API externa, mas as regras impõem no máximo uma requisição a cada 30 segundos. Solução com time.sleep(): import time def poll_api(): print("Making API request...") def main(): while True: poll_api() time.sleep(30) if __name__ == "__main__": main() Após cada requisição, o script pausa 30 segundos, respeitando o limite de frequência. Alternativa assíncrona: import asyncio async def poll_api(): print("Making API request...") async def main(): while True: await poll_api() await asyncio.sleep(30) if __name__ == "__main__": asyncio.run(main()) Essa versão não bloqueia o programa inteiro, permitindo que outras tarefas sejam executadas simultaneamente. É uma solução mais eficiente e escalável. Conclusão Gerenciar pausas e atrasos é uma parte importante do desenvolvimento em Python. time.sleep() é a ferramenta mais simples e intuitiva, mas a escolha entre time.sleep(), asyncio.sleep() e outras opções deve depender da arquitetura do projeto. Recomendações principais: Use time.sleep() para atrasos curtos em testes, entre requisições ou em demonstrações. Evite bloquear a thread principal em aplicações com interface gráfica. Em código assíncrono, substitua por asyncio.sleep() para manter o loop eficiente. Em programas multithread, lembre-se de que apenas a thread atual pausa. Use threading.Event() ou input() para aguardar eventos ou ações do usuário.
14 October 2025 · 8 min to read

Tem perguntas,
comentários ou preocupações?

Nossos profissionais estão disponíveis para ajudá-lo a qualquer momento,
seja para assistência ou apenas se você não souber por onde começar.
Envie-nos um e-mail
Hostman's Support