In questa sezione avanzata sono presenti appunti, best practice e guide per approfondire tutto ciò che riguarda Pyenv
https://realpython.com/intro-to-pyenv/
Pyenv con poetry
https://blog.jayway.com/2019/12/28/pyenv-poetry-saviours-in-the-python-chaos/
Guida per configurare pyenv su Mac
https://opensource.com/article/20/4/pyenv
Notes su un Github Gist
https://gist.github.com/Geoyi/f55ed54d24cc9ff1c14bd95fac21c042
Pyenv è un gestore di installazione di python. Permette di installare e eseguire più installazioni di python sulla stessa macchina.
Pyenv gestisce le differenti versioni di python per te, in modo da evitare il chaos di dipendenze, versioni e installazioni illustrato nell’immagine iniziale.
Perchè non utilizzare python installato di default nel proprio sistema operativo?
Cosa ci consente di fare pyenv? (flusso operativo)
Per installare Pyenv vi rimandiamo alla documentazione ufficiale su Github.
Questo perchè le modalità di installazione cambiano a seconda della versione e del sistema operativo e stare al passo con gli aggiornamenti è sempre complicato.
Più avanti in questa guida trovate esempi di utilizzo con Pyenv più avanzati.
La guida di riferimento per l’installazione la potete trovare: qui
Verificare installazione di Pyenv
Una volta installato e configurato correttamente sul vostro terminale terminale fare:
pyenv --version
Visualize python versions
pyenv install --list | grep " 3\.[678]"
pyenv install -v 3.7.2
Visualizzare dove vengono installate le varie versioni su Python
ls ~/.pyenv/versions/
Disinstallare una versione di Python
pyenv uninstall <version>
Ogni volta che su windows (e altri sistemi operativi) si installa una nuova versione di Python con pyenv è importante anche fare rehash
#rehash to update shims
pyenv rehash
Disinstallare una versione di python
#visualizzare le versioni di pyenv installate
pyenv versions
#disinstallare una determinata versione
pyenv uninstall <versione>
#Visualize the installed (available) versions
pyenv versions
#Visualize the active version of python with pyenv
pyenv which python
#Set a global pyenv version
pyenv global <version>
#If you want to come back to the system default
pyenv global system
È anche possibile impostare una versione di pyenv python locale per ogni progetto facendo all’interno della cartella di progetto:
pyenv local <version>
Oppure impostare la versione di una determinata shell
pyenv shell <version>
Dopo aver installato la versione di Python global di pyenv è necessario eliminare dalla variabile di ambiente PATH i riferimenti al Python base installato inizialmente.
Pyenv ha un bellissimo plugin chiamato: pyenv-virtualenv
che consente di gestire appunto i vari virtualenv in modo semplice.
Ci sono diversi modi per gestire un virtualenv (pyenv consente di gestirli tutti e 3 in modo molto semplice e comodo)
Creare un virtualenv
pyenv virtualenv <python_version> <environment_name>
#<pythonversion> is optional
Attivare un virtualenv
pyenv local myproject
#verify python version
pyenv which python
#verify pip version
pyenv which pip
È quindi possibile attivare o disattivare un particolare ambiente (virtualenv) (un po' come succede con anaconda)
pyenv activate <environment_name>
pyenv deactivate
Con pyenv è anche possibile utilizzare più versioni di python contemporaneamente…
https://blog.jayway.com/2019/12/28/pyenv-poetry-saviours-in-the-python-chaos/
È possibile utilizzare pyenv come plugin su oh-my-zsh in modo molto comodo inserendo pyenv
all’interno dei plugin nel file di configurazione.
Informazione: Impedire a conda di partire di default
conda config --set auto_activate_base false
Elenco delle librerie base da installare (necessario creare progetto base per configurare queste librerie)
A tal proposito sui vostri progetti suggeriamo di utilizzare Poetry per gestire le dipendenze e le librerie necessarie (sia di sviluppo che di produzione.