GNU/Linux >> Linux Esercitazione >  >> Linux

Come gestire più versioni di Python con Pyenv su Linux

Sei un programmatore che vuole testare il tuo codice Python su più ambienti Python diversi. Cosa faresti? Installa una versione python specifica e testa il tuo codice, quindi disinstalla quella versione e installa di nuovo un'altra versione diversa e codice di prova? Non aspettare! Non è inutile. Incontra Pyenv , un'utilità della riga di comando per gestire più versioni di Python contemporaneamente. Ha reso la gestione della versione di Python più semplice che mai. Viene utilizzato per installare, disinstallare e passare a più versioni diverse di Python.

Pyenv consente di modificare la versione globale di Python in base all'utente, fornire supporto per le versioni di Python per progetto, sovrascrivere la versione di Python con una variabile di ambiente e cercare comandi da più versioni di Python alla volta. Pyenv può essere utilizzato per testare il codice in più ambienti Python. In questo tutorial, vedremo come installare e usare Pyenv su GNU/Linux.

Installa Pyenv su Linux

Prima di tutto, installa i seguenti pacchetti per evitare i comuni problemi di compilazione.

Per i sistemi basati su Debian:

$ sudo apt-get install -y make build-essential git libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev

Per i sistemi basati su RPM:

$ sudo yum install zlib-devel bzip2 bzip2-devel git readline-devel sqlite sqlite-devel openssl-devel xz xz-devel

Per SUSE/openSUSE:

$ sudo zypper in zlib-devel bzip2 libbz2-devel git readline-devel sqlite3 sqlite3-devel libopenssl-devel xz xz-devel

Abbiamo appena installato i prerequisiti necessari. È ora di installare Pyenv. Il modo ufficiale e consigliato per installare Pyenv è utilizzare lo script pyenv-installer. Tutto quello che devi fare è eseguire il seguente comando nella tua shell per installare pyenv.

$ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash

Al termine dell'installazione, il programma di installazione ti avviserà di aggiungere Pyenv al tuo PERCORSO. Nel mio caso, ho aggiunto le seguenti righe nel mio ~/.bash_profile file.

 export PATH="/home/ostechnix/.pyenv/bin:$PATH"
 eval "$(pyenv init -)"
 eval "$(pyenv virtualenv-init -)"

Esegui il comando seguente per rendere effettive le modifiche.

$ source ~/.bash_profile

Pyenv è pronto per l'uso. Ora vediamo come gestire diverse versioni di Python usando Pyenv.

Gestisci più versioni di Python con Pyenv su Linux

Per prima cosa, vediamo tutte le versioni disponibili. Per farlo, esegui semplicemente il seguente comando:

$ pyenv install -l

Oppure,

$ pyenv install --list

Dovresti ottenere un output come di seguito.

Available versions:
 2.1.3
 2.2.3
 2.3.7
 2.4
 2.4.1
 .
 .
 .
 3.6.2
 3.6.3
 3.6.4
 3.7.0b1
 3.7-dev
 3.8-dev
[...]

Per elencare le versioni di Python attualmente installate:

$ pyenv versions
* system (set by /home/ostechnix/.pyenv/version)

Per impostazione predefinita, Pyenv utilizza il nostro python predefinito di sistema. Qui * indica l'impostazione predefinita.

Installa Python

Supponiamo che tu abbia bisogno delle versioni Python 2.7.14 e 3.6.4 sul tuo sistema.

Per farlo, esegui semplicemente:

$ pyenv install 2.7.14

Per installare Python 3.6.4, esegui:

$ pyenv install 3.6.4

Non hai bisogno dei diritti sudo. Tutte le versioni di Python verranno installate in una directory separata nella directory principale di pyenv nella tua $HOME. La directory principale di pyenv predefinita è ~/.pyenv . Ad esempio, Python 2.7.14 è installato in /home/otechnix/.pyenv/versions/2.7.14 nel mio caso.

$ ls /home/ostechnix/.pyenv/versions/
2.7.14 3.6.4

Ora elenca le versioni di Python installate.

$ pyenv versions
* system (set by /home/ostechnix/.pyenv/version)
 2.7.14
 3.6.4

Passaggio tra diverse versioni di Python

Possiamo passare a Python diversi in due modi, a livello globale e locale.

Vediamo l'attuale versione globale di Python usando il comando:

$ pyenv global
system

Non ce ne sono. Il mio sistema utilizza ancora il python predefinito del sistema. Passiamo a versioni diverse di Python, ad esempio 2.7.14 .

$ pyenv global 2.7.14

Ora controlla la versione predefinita di Python:

$ pyenv versions
 system
* 2.7.14 (set by /home/ostechnix/.pyenv/version)
 3.6.4

Hai notato la stella(*)? Sì, la 2.7.14 è la nostra versione globale predefinita di Python.

Puoi anche specificare più versioni come Python globale contemporaneamente. Diciamo che hai due versioni di 2.7.14 e 3.6.4. Se preferisci 2.7.14 su 3.6.4, esegui semplicemente:

$ pyenv global 2.7.14 3.6.4

Ora controlla le versioni globali.

$ pyenv versions
 system
* 2.7.14 (set by /home/ostechnix/.pyenv/version)
* 3.6.4 (set by /home/ostechnix/.pyenv/version)

Ora 2.7.14 e 3.6.4 sono le versioni globali predefinite.

Possiamo impostare una versione Python specifica dell'applicazione locale (per progetto) scrivendo il nome della versione in un .python-version file nella directory corrente. Tieni presente che la versione locale sovrascrive la versione globale e può essere sovrascritta impostando la variabile d'ambiente PYENV_VERSION o con il comando della shell pyenv.

Passa alla directory del tuo progetto:

$ cd myproject/

Passiamo alla 3.6.4.

$ pyenv local 3.6.4

Controlla l'attuale versione locale di Python.

$ pyenv versions
 system
 2.7.14
* 3.6.4 (set by /home/ostechnix/myproject/.python-version)

Impostazione dell'ambiente virtuale

Per configurare un ambiente virtuale con una versione specifica di Python, eseguire:

$ pyenv virtualenv 3.6.4 myenv

Per renderlo disponibile a livello globale, esegui:

$ pyenv global myenv
(myenv) [email protected]:~$

Ora sei nel tuo ambiente virtuale. Fai quello che vuoi. Installa, rimuovi le applicazioni Python usando pip e cosa no. È tutto tuo.

Se vuoi configurare un ambiente virtuale locale (per directory):

CD nella directory del tuo progetto ed esegui:

$ pyenv local mylocalenv

Per rimuovere un ambiente virtuale, fai semplicemente:

$ pyenv uninstall myenv
pyenv-virtualenv: remove /home/ostechnix/.pyenv/versions/3.6.4/envs/myenv? y

Rimozione di una versione specifica di Python

Per disinstallare una specifica versione di Python, ad esempio 3.6.4:

$ pyenv uninstall 3.6.4

In alternativa, rimuovi semplicemente la directory della versione che desideri rimuovere.

Controlla le versioni Python attualmente installate:

$ pyenv versions

Per maggiori dettagli, leggi la sezione della guida eseguendo il comando seguente:

$ pyenv

Inoltre, controlla "pyenv help " per informazioni su un comando specifico. Ad esempio, puoi visualizzare le informazioni del comando "installa" come di seguito.

$ pyenv help install

E questo è tutto. Come puoi vedere, gestire più versioni di Python è abbastanza semplice! Se sei un programmatore Python, Pyenv è uno strumento essenziale da tenere nel tuo arsenale.

Lettura correlata:

  • SDKMAN - Uno strumento CLI per gestire facilmente più kit di sviluppo software
  • Come gestire più versioni Java con jEnv su Linux

Linux
  1. Come lavorare con più versioni Java sotto Linux

  2. Come installare/passare tra più versioni Java con SDKMAN

  3. Come utilizzare l'esportazione con Python su Linux

  4. Due versioni di Python su Linux. come rendere 2.7 il valore predefinito

  5. Come gestire le workstation Linux con le policy

Come gestire lo storage su Linux con LVM

Come gestire le tue password con Enpass su Linux

Come gestire più versioni Java con jEnv su Linux

Come gestire le versioni di Nodejs con n in Linux

Come gestire in remoto un server Linux con SSH

Come gestire l'archiviazione con GParted Linux