Dopo l’aggiornamento da Ubuntu 22.10 a 23.04, pipx si è rotto sul mio laptop e risolverlo non è stato esattamente semplice, quindi ho pensato di scrivere qui su questo, nel caso ci fossero altri che si imbattono in questo problema. Mentre mi sono imbattuto in questo problema su Ubuntu, questo non è specifico di Ubuntu e può accadere anche su altre distribuzioni Linux.
pipx è uno strumento che semplifica l’installazione (usando PyPI come indice del pacchetto) di applicazioni Python isolate. pip è un programma di installazione di pacchetti Python sia per le librerie che per le app, mentre pipx è realizzato appositamente per le applicazioni, creando un ambiente isolato per ogni app e le sue dipendenze.
Ubuntu 23.04 non consente più installazioni pip al di fuori di un ambiente virtuale, quindi l’utilizzo di pipx è un must se si desidera installare app Python che non sono disponibili nei repository ufficiali. Ho usato pipx per un po’, ma dopo l’aggiornamento a Ubuntu 23.04, ho ricevuto il seguente errore durante il tentativo di installare un pacchetto 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
Sembra che ciò accada quando la versione di Python viene aggiornata (a una versione principale) su una macchina su cui pipx è stato installato e utilizzato in precedenza.
La soluzione migliore che ho trovato per risolvere questo problema è rimuovere il file ~/.local/pipx/shared
folder (o puoi spostarlo da qualche parte se lo desideri), che contiene le librerie pipx condivise, quindi ottieni pipx per reinstallare le librerie condivise. Questo può essere fatto dalla riga di comando, usando:
mv ~/.local/pipx/shared ~/.local/pipx/shared.old
pipx list
IL mv
il comando dall’alto sposta il ~/.local/pipx/shared
cartella con un nuovo nome, ~/.local/pipx/shared.old
. IL pipx list
comando elenca i pacchetti installati, ma se mancano le librerie condivise, le installa prima, come nel nostro caso.
Per me, questo ha risolto l’errore di installazione di pipx e i miei pacchetti pipx già installati hanno continuato a funzionare. Nel caso in cui i tuoi pacchetti pipx già installati non funzionino, puoi provare a reinstallarli usando pipx reinstall-all
ma tieni presente che questo potrebbe disinstallare pacchetti che non può reinstallare!
grazie a remcoboerma per la correzione!