Pipx¶
È vero che ogni progetto dovrebbe sempre avere le proprie dipendenze e vivere in maniera atomica e indipendente rispetto agli altri progetti.
Tuttavia ci sono alcune librerie che possono essere globali su tutta la macchina e su tutto il sistema.
Alcune di queste librerie sono quelle che servono per gestire la qualità del codice o lo stile, come ad esempio black o flake8
Ecco quindi che viene in soccorso pipx che consente di installare queste librerie globali e usarle globalmente su tutta la macchina.
https://github.com/pipxproject/pipx
Sostanzialmente quando volete installare delle librerie su tutta la macchina globalmente, invece di fare pip install my_package
fate pipx install my_package
#Lista di tutti i pacchetti
pipx list
# rimuovere un pacchetto
pipx uninstall my_package
# Lanciare una liberia o un comando
pipx run black my_file
# Si può anche specificare una determinata versione del pacchetto
pipx run --spec black==18.3a1 black --version
Ogni volta che viene lanciato pipx run my_package quello che succede è che viene creato temporaneamente un virtualenvironment dentro al quale viene eseguito il comando per poi essere distrutto.
Su visual studio è importante fare questo settaggio se si vuole usare pipx (lo si fa una volta sola)
# Installare il pacchetto
pipx install flake8
# visualizzare dove viene installato il pacchetto
which flake8
<path>
# Copiare il path e dire a visual studio quale binario prendere
# Dentro al file settings.json (vedere come si fa a prendere) inserire
"python.linting.flake8Path": "/Users/YOUR_USERNAME/.local/bin/flake8"