Se você trabalha com Python, provavelmente está familiarizado com o pip, o instalador de pacotes para Python. À medida que você continua trabalhando em vários projetos, pode ser necessário atualizar todos os seus pacotes Python. Embora o pip não tenha uma opção integrada para atualizar todos os pacotes de uma vez, existem vários métodos que você pode usar para alcançar isso. Vamos explorar algumas das maneiras mais eficazes de atualizar todos os seus pacotes Python usando o pip.
Usando pip e Comandos Shell
Para aqueles que usam a versão 22.3 ou mais recente do pip, você pode usar uma combinação de pip, Python e comandos shell para atualizar todos os pacotes desatualizados. Aqui está um comando que lista todos os pacotes desatualizados em formato JSON e, em seguida, os atualiza:
pip --disable-pip-version-check list --outdated --format=json | python -c "import json, sys; print('\n'.join([x['name'] for x in json.load(sys.stdin)]))" | xargs -n1 pip install -U
Para versões do pip anteriores a 22.3, você pode usar o seguinte comando:
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
E para versões ainda mais antigas do pip, este comando deve funcionar:
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
O comando grep
é usado para excluir definições de pacotes editáveis (“-e”), e a flag -n1
para xargs
garante que o processo de atualização não pare se um pacote falhar na atualização.
Usando pip-review
Outro método é usar o pip-review
, uma ferramenta que permite atualizar todos os pacotes locais de forma interativa ou automática. Primeiro, instale o pip-review
:
pip install pip-review
Em seguida, para atualizar pacotes de forma interativa:
pip-review --local --interactive
Ou para atualizar pacotes automaticamente:
pip-review --local --auto
Note que o pip-review
é um fork do pip-tools
e atualmente está procurando um novo mantenedor, mas ainda funciona efetivamente para atualizar pacotes.
Usando Scripts Python
Para aqueles que preferem uma abordagem mais programática, você pode usar scripts Python para atualizar seus pacotes. Veja como você pode fazer isso para versões do pip antes e depois de 10.0.1:
Para pip < 10.0.1:
import pip
from subprocess import call
packages = [dist.project_name for dist in pip.get_installed_distributions()]
call("pip install --upgrade " + ' '.join(packages), shell=True)
Para pip >= 10.0.1:
import pkg_resources
from subprocess import call
packages = [dist.project_name for dist in pkg_resources.working_set]
call("pip install --upgrade " + ' '.join(packages), shell=True)
Usando um Arquivo requirements.txt
Por último, você pode usar um arquivo requirements.txt
para atualizar seus pacotes. Primeiro, gere o arquivo com:
pip freeze > requirements.txt
Em seguida, substitua ==
por >=
para permitir atualizações. Você pode fazer isso manualmente ou com o comando sed
:
sed -i 's/==/>=/g' requirements.txt
Finalmente, execute o comando de atualização:
pip install -r requirements.txt --upgrade
Se você encontrar problemas com pacotes específicos, pode comentá-los no arquivo requirements.txt
e tentar atualizar novamente.
Resumo
Atualizar todos os seus pacotes Python com pip pode ser feito usando vários métodos, incluindo comandos shell, pip-review
, scripts Python ou um arquivo requirements.txt
. Cada método tem suas próprias vantagens, e você pode escolher aquele que melhor se adapta ao seu fluxo de trabalho. Mantendo seus pacotes atualizados, você garante que terá os recursos mais recentes e atualizações de segurança, tornando seu ambiente Python mais robusto e confiável.
Cursos de programação gratuitos com certificado
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
- Conteúdos gratuitos
- Projetos práticos
- Certificados
- +20 mil alunos e comunidade exclusiva
- Materiais didáticos e download de código
Comentários