Ricerca nel sito web

Pyenv: installa più versioni Python per progetti specifici


Gestire più versioni di Python su un sistema Linux non è un compito facile, soprattutto per i principianti. A volte la situazione peggiora ulteriormente quando si desidera sviluppare ed eseguire più progetti con diverse versioni di Python sullo stesso server. Tuttavia, questo non dovrebbe essere il caso se utilizzi pyenv.

Leggi anche: Come installare l'ultima versione di Python 3.6 in Linux

Cos'è Pyenv?

Pyenv è uno strumento semplice, potente e multipiattaforma per la gestione di più versioni Python su sistemi Linux, utilizzato per.

  • Cambiare la versione globale di Python in base al singolo utente.
  • impostando la versione locale di Python in base al progetto.
  • Gestione di ambienti virtuali creati da anaconda o virtualenv.
  • Sovrascrivere la versione Python con una variabile di ambiente.
  • Ricerca di comandi da più versioni di Python e altro ancora.

Come funziona pyenv?

Di solito, per eseguire tutte le applicazioni viene utilizzata un'unica versione predefinita di Python, a meno che tu non specifichi esplicitamente la versione che desideri utilizzare all'interno dell'applicazione. Ma pyenv implementa un semplice concetto di utilizzo di shim (eseguibili leggeri) per passare il comando alla versione Python corretta che desideri utilizzare, quando sono installate più versioni.

Questi shim vengono inseriti da pyenv in una directory davanti al tuo PATH. Quindi, quando esegui un comando Python, viene intercettato dallo shim appropriato e passato a pyenv, che poi stabilisce la versione Python che è stata specificata dalla tua applicazione e passa i tuoi comandi insieme alla corretta installazione di Python. Questa è una panoramica di come opera pyenv.

In questo articolo mostreremo come installare l'ultima versione di pyenv in Linux. Dimostreremo anche i primi tre casi d'uso sopra elencati.

Come installare Pyenv su Linux

1. Per prima cosa installa tutti i pacchetti richiesti per installare diverse versioni di Python dai sorgenti utilizzando il seguente comando sulla rispettiva distribuzione Linux.

------------ On Debian/Ubuntu/Linux Mint ------------ 
sudo apt install curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev

------------ On CentOS/RHEL ------------
yum -y install epel-release
yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

------------ On Fedora 22+ ------------
yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

2. Successivamente, prendi l'ultimo albero sorgente pyenv dal suo repository Github e installalo nel percorso $HOME/.pyenv utilizzando il seguente comando.

git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv

3. Ora devi impostare la variabile di ambiente PYENV_ROOT in modo che punti al percorso in cui hai installato pyenv ed esportarlo. Quindi aggiungi $PYENV_ROOT/bin al tuo PATH per eseguire l'utilità della riga di comando pyenv come qualsiasi altro comando di sistema.

Devi anche abilitare gli shim e il completamento automatico aggiungendo pyenv init alla tua shell. Esegui tutte queste operazioni nel tuo file di avvio bash $HOME/.bashrc, come mostrato.

vim $HOME/.bashrc 

Copia e incolla le seguenti righe alla fine di questo file.

## pyenv configs
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

4. Dopo aver apportato le modifiche di cui sopra, puoi creare il file $HOME/.bashrc o riavviare la shell come mostrato.

source $HOME/.bashrc
OR
exec "$SHELL"

Come installare più versioni Python in Linux

5. A questo punto, dovresti essere pronto per iniziare a utilizzare pyenv. Prima di installare qualsiasi versione di Python, puoi visualizzare tutte le versioni disponibili con questo comando.


pyenv install -l

6. Ora puoi installare più versioni di Python tramite pyenv, ad esempio.

pyenv install 3.6.4
pyenv install 3.6.5

7. Per elencare tutte le versioni di Python disponibili per pyenv, esegui il comando seguente. Questo mostrerà solo le versioni installate tramite pyenv stesso.

pyenv versions

8. Puoi controllare la versione globale di Python con il seguente comando, a questo punto la versione predefinita dovrebbe essere quella impostata dal sistema, non pyenv.

pyenv global

Puoi impostare la versione globale di Python utilizzando il comando pyenv.

pyenv global 3.6.5
pyenv global

9. Ora puoi impostare la versione locale di Python in base al progetto, ad esempio, se hai un progetto situato in $HOME/python_projects/test, puoi impostare la versione Python utilizzando il seguente comando.

cd python_projects/test
pyenv local 3.6.5
pyenv version		#view local python version for a specific project 
OR
pyenv versions

10. Pyenv gestisce gli ambienti virtuali tramite il plug-in pyenv-virtualenv che automatizza la gestione degli ambienti virtualenvs e conda per Python su Linux e altri sistemi simili a UNIX.

Puoi iniziare installando questo plugin utilizzando i seguenti comandi.

git clone https://github.com/yyuu/pyenv-virtualenv.git   $HOME/.pyenv/plugins/pyenv-virtualenv
source $HOME/.bashrc

11. Ora creeremo un ambiente virtuale di prova chiamato venv_project1 sotto un progetto chiamato project1 come segue.

cd python_projects
mkdir project1
cd project1
pyenv virtualenv 3.6.5 venv_project1

12. Ora, quando elenchi tutte le versioni di Python, dovrebbero essere elencati anche i tuoi ambienti virtuali e le relative versioni Python locali, come mostrato nello screenshot.

pyenv versions

13. Per attivare un virtualenv, ad esempio venv_project1, digitare il seguente comando.

pyenv activate venv_project1

Nota: potresti ricevere il messaggio seguente mentre utilizzi l'ultima versione del plug-in pyenv-virtualenv per la prima volta.

pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.

Aggiungi la riga export PYENV_VIRTUALENV_DISABLE_PROMPT=1 nel tuo file $HOME/.bashrc, dove hai aggiunto altre configurazioni pyenv e origina il file per simulare il comportamento che viene enfatizzato.

14. Per disattivare il virtualenv attivato, esegui questo comando.

pyenv deactivate

Per ulteriori informazioni, puoi elencare tutti i comandi pyenv utilizzando il seguente comando.

pyenv commands

Per ulteriori informazioni, vai al repository Github pyenv: https://github.com/pyenv/pyenv

Leggi anche: Come installare più versioni PHP per più siti web

Usare pyenv è davvero semplicissimo. In questa guida abbiamo mostrato come installarlo e illustrato alcuni dei suoi casi d'uso per la gestione di più versioni di Python su un sistema Linux. Utilizza il modulo di feedback qui sotto per porre domande o condividere le tue opinioni su questo strumento.