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:
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.
Confira a versão original desse post em inglês:
How To Fix pipx: Fatal Error From pip Prevented Installation / No Module Named pip