Compilare Python da sorgente su Linux: guida per RHEL e Debian/Ubuntu

python snake logo

Questa guida mostra come compilare Python da sorgente su distribuzioni Linux basate su RHEL (Oracle Linux, AlmaLinux, Rocky Linux) e su Debian/Ubuntu. Compilare da sorgente permette di scegliere esattamente la versione da installare, in una directory personalizzata, senza interferire con il Python di sistema.

1. Installa le dipendenze di compilazione

Per RHEL (Oracle Linux 10, AlmaLinux 10, Rocky Linux 10) usa questi comandi

sudo dnf groupinstall "Development Tools"
sudo dnf install zlib-devel ncurses-devel gdbm-devel openssl-devel readline-devel libffi-devel sqlite-devel bzip2-devel xz-devel tk-devel uuid-devel libuuid-devel

Per Debian 13 / Ubuntu 26 usa qesti comandi

sudo apt update
sudo apt install -y build-essential libz-dev libncurses-dev libgdbm-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev libbz2-dev liblzma-dev tk-dev uuid-dev

2. Scarica e compila i sorgenti

Setta la variabile PYTHON_VERSION per impostare la versione da installare, la variabile PYTHON_INSTALL_DIR per settare la cartella che conterrà python compilato

# Imposta la versione e la directory di installazione
export PYTHON_VERSION="3.14.4"
export PYTHON_INSTALL_DIR="$HOME/PROGS/python${PYTHON_VERSION}"

# Prepara le directory
sudo rm -rf "${PYTHON_INSTALL_DIR}" && mkdir -p "${PYTHON_INSTALL_DIR}"
mkdir -p ~/sources && cd ~/sources

# Scarica ed estrai i sorgenti
wget https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tar.xz
tar -xf Python-${PYTHON_VERSION}.tar.xz
rm Python-${PYTHON_VERSION}.tar.xz
cd Python-${PYTHON_VERSION}

# Configura
./configure --prefix="${PYTHON_INSTALL_DIR}" --enable-optimizations --with-ensurepip=install

# Compila e installa
make -j $(nproc)
make install

3. Aggiorna il PATH

Apri in modifica il file ~/.bashrc e aggiungi le seguenti righe, ricordando di impostare correttamente le variabili PYTHON_VERSION e PYTHON_INSTALL_DIR

nano ~/.bashrc

export PYTHON_VERSION="3.14.4"
export PYTHON_INSTALL_DIR="$HOME/PROGS/python${PYTHON_VERSION}"
export PATH="${PYTHON_INSTALL_DIR}/bin:$PATH"

Poi ricarica il file:

source ~/.bashrc

4. Verifica l’installazione

$PYTHON_INSTALL_DIR/bin/python3 --version
$PYTHON_INSTALL_DIR/bin/pip3 --version

5. Pulizia

cd $HOME && rm -rf ~/sources

Note finali

  • Cambia il valore di PYTHON_VERSION per compilare qualsiasi altra versione.
  • L’opzione --enable-optimizations attiva le ottimizzazioni PGO (Profile Guided Optimization): allunga i tempi di compilazione ma migliora le prestazioni a runtime.
  • L’installazione avviene in una directory utente ($HOME/PROGS/...), senza toccare il Python di sistema.