Home

ITA - Installare Manualmente Python

debian linux python

Introduzione

L’altro giorno avevo bisogno di installare per il mio utente una specifica versione di python.

La soluzione a mio avviso più semplice è stato quello di scaricarne i sorgenti, compilarli e installarli in locale; poi per mia comodità ho configurato i moduli d’adibente per poterli usare velocemente.

Installazione

Prerequisiti per l’installazione

Prima di procedere all’installazione è necessario installare i pacchetti di sviluppo:

$ sudo apt install wget build-essential libreadline-gplv2-dev libncursesw5-dev \
libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev

Preparazione dei Sorgenti

Creo la cartella locale per i sorgenti:

$ sudo mkdir -p ~/Src/python/

Supponendo che io voglia compilare e installare la versione 3.10.12:

$ wget  wget  https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tgz -O ~/Src/python/Python-3.10.12.tgz 

Controllare la pagina per un elenco delle versioni disponibili.

Estraggo i sorgenti:

$ tar -xzf ~/Src/python/Python-3.10.12.tgz  -C ~/Src/python/

Compilazione ed installazione

Per compilare la versione di python e eseguo i seguenti comandi:

$ cd ~/Src/python/Python-3.10.12    
$ ./configure --enable-optimizations --prefix=$HOME/.local/python/3.10.12
$ make 
$ mkdir  $HOME/.local/python/3.10.12  -p
$ make install

Configurazione del Module d’ambiente

Come descritto nell’articolo dedicato a environment modules; creo il file di modulo ~/.local/modulefiles/python/3.10.12 con questo contenuto:

#%Module1.0#####################################################################
##
## python 3.10.12 modulefile
##

proc ModulesHelp { } {
        puts stderr "\tAdds Python 3.10.12  to your PATH environment variable\n"
}

module-whatis   "adds Python 3.10.12  to your PATH environment variable"

prepend-path PATH ~/.local/python/3.10.12/bin

conflict        python

per testare il modulo:

$ module avail python/*
--------------------------- ~/.local/modulefiles ---------------------------
python/3.10.12 
$ module load python/3.10.12 
$ python3 --version 
Python 3.10.12

Riferimenti