Como corrigir pipx: Fatal error from pip prevented installation / no module called pip

4 de maio de 2023

pipx-logo

Depois de atualizar do Ubuntu 22.10 para 23.04, pipx quebrou no meu laptop e corrigi-lo não foi exatamente simples, então pensei em escrever aqui sobre isso, caso haja outros tendo este problema. Enquanto eu encontrei esse problema no Ubuntu, isso não é específico do Ubuntu, e pode acontecer em outras distribuições Linux também.

pipx é uma ferramenta que facilita a instalação (usando PyPI como índice de pacotes) de aplicativos Python isolados. pip é um instalador de pacotes Python para bibliotecas e aplicativos, enquanto pipx é feito especificamente para aplicativos, criando um ambiente isolado para cada aplicativo e suas dependências.

O Ubuntu 23.04 não permite mais instalações de pip fora de um ambiente virtual, então usar pipx é uma espécie de obrigação se você quiser instalar aplicativos python que não estão disponíveis nos repositórios oficiais. Eu estava usando pipx por um tempo, mas depois de atualizar para o Ubuntu 23.04, recebi o seguinte erro ao tentar instalar um pacote Python usando pipx:

$ pipx install yewtube

Fatal error from pip prevented installation. Full pip output in file:

/home/logix/.local/pipx/logs/cmd_2023-05-04_20.45.55_pip_errors.log

Error installing yewtube.

$ cat /home/logix/.local/pipx/logs/cmd_2023-05-04_20.45.55_pip_errors.log
/home/logix/.local/pipx/venvs/frogmouth/bin/python: No module named pip

Parece que isso acontece quando a versão do Python é atualizada (para uma versão principal) em uma máquina na qual o pipx foi instalado e usado antes.

A melhor solução que eu poderia encontrar para resolver esse problema é remover a pasta ~/.local/pipx/shared (ou você pode movê-la para algum lugar, se desejar), que contém bibliotecas pipx compartilhadas, e então obter pipx para reinstalar as bibliotecas compartilhadas. Isso pode ser feito a partir da linha de comando, usando:

Comandos para usar no terminal

mv ~/.local/pipx/shared ~/.local/pipx/shared.oldpipx list

O comando mv de cima move a pasta ~/.local/pipx/shared para um novo nome, ~/.local/pipx/shared.old. O comando pipx list lista os pacotes instalados, mas se as bibliotecas compartilhadas estiverem ausentes, ele as instala primeiro, que é o nosso caso.

Para mim, isso corrigiu o erro de instalação do pipx, e meus pacotes pipx já instalados continuaram a funcionar. Caso seus pacotes pipx já instalados não funcionem, você pode tentar reinstalá-los usando pipx reinstall-all, mas observe que isso pode desinstalar pacotes que ele não pode reinstalar!

Obrigado a Remcoboerma pela correção!

Esse post foi traduzido do site LinuxUprising.com pela rtland.team.

Linux Uprising Blog
Propaganda
Propaganda