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
$ 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