Gestori di pacchetti - a livello di utente
Per un gestore di pacchetti in grado di installare e gestire più versioni di python, queste sono buone scelte:
- pyenv : solo in grado di installare e gestire versioni di python
- asdf - in grado di installare e gestire molte lingue diverse
Il vantaggio di questi gestori di pacchetti è che potrebbe essere più facile configurarli e installare più versioni di python con loro piuttosto che installare python dal sorgente. Forniscono anche comandi per modificare facilmente le versioni di python disponibili utilizzando shim e impostando la versione di python per directory.
Questo svantaggio è che, per impostazione predefinita, sono installati a livello di utente (all'interno della tua directory home) e richiedono un po 'di configurazione a livello di utente: dovrai modificare i tuoi file ~/.profilee / ~/.bashrco simili. Ciò significa che non è facile utilizzarli per installare più versioni di Python a livello globale per tutti gli utenti. Per fare ciò, puoi installare dalla sorgente insieme alla versione esistente di python del sistema operativo.
Installazione dalla sorgente - a livello di sistema
Avrai bisogno dei privilegi di root per questo metodo.
Vedere la documentazione ufficiale di Python per la compilazione dai sorgenti per ulteriori considerazioni e opzioni.
/usr/localè la posizione designata per un amministratore di sistema per installare software condiviso (a livello di sistema), quindi le sue sottodirectory sono un buon posto per scaricare i sorgenti python e installarli. Vedere la sezione 4.9 del File Hierarchy Standard della Linux Foundation .
Installa eventuali dipendenze di compilazione. Su sistemi basati su Debian, usa:
apt update
apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev libbz2-dev
Scegli la versione di Python che desideri installare. Vedi la pagina Python Source Releases per un elenco.
Scarica e decomprimi il file /usr/local/src, sostituendolo di X.X.Xseguito con la versione python (cioè 3.8.2).
cd /usr/local/src
wget https://www.python.org/ftp/python/X.X.X/Python-X.X.X.tgz
tar vzxf Python-X.X.X.tgz
Prima di compilare e installare, impostare la CFLAGSvariabile d'ambiente con i flag del compilatore C necessari (vedere la makedocumentazione di GNU ). Di solito non è necessario per un uso generale, ma se, ad esempio, dovessi creare un plugin uWSGI con questa versione di python, potresti voler impostare i flag,, -fPICcon quanto segue:
export CFLAGS='-fPIC'
Cambia la directory di lavoro nella directory dei sorgenti di Python decompressa e configura la build. Probabilmente vorrai utilizzare l' --enable-optimizationsopzione sul ./configurecomando per l' ottimizzazione guidata dal profilo . Utilizzare --prefix=/usr/localper installare le sottodirectory appropriate ( /usr/local/bin, /usr/local/lib, ecc).
cd Python-X.X.X
./configure --enable-optimizations --prefix=/usr/local
Crea il progetto con makee installa con make altinstallper evitare di sovrascrivere i file durante l'installazione di più versioni. Vedi l'avviso in questa pagina della documentazione della build di python.
make -j 4
make altinstall
Quindi dovresti essere in grado di eseguire le tue nuove versioni di python e pip con pythonX.Xe pipX.X(cioè python3.8e pip3.8). Nota che se la versione secondaria della tua nuova installazione è la stessa della versione del sistema operativo (ad esempio se stavi installando python3.8.4 e il sistema operativo utilizzava python3.8.2), allora dovresti specificare l'intero percorso ( /usr/local/bin/pythonX.X) o impostare un alias per utilizzare questa versione.