Installare Python e verificare versione e pip su Linux
Su Linux Python 3 è quasi sempre preinstallato. Scopri come verificare la versione, aggiungere pip e venv via APT e gestire l'errore externally-managed-environment.
L’approccio a Python su Linux è radicalmente diverso rispetto a quello su Windows o macOS. Se provi a cercare un file di installazione eseguibile sul sito ufficiale, scoprirai presto che nella maggior parte dei casi non ne avrai alcun bisogno.
Il motivo è strutturale: le distribuzioni Linux moderne dipendono intimamente da Python per il loro stesso funzionamento. Strumenti di sistema critici, gestori di pacchetti, firewall grafici e moduli desktop sono spesso scritti proprio in questo linguaggio.
Di conseguenza, Python 3 è quasi certamente già presente sul tuo sistema operativo. L’obiettivo di questa guida non è installarlo da zero, ma verificare la versione disponibile, installare gli strumenti accessori mancanti (come pip e il modulo venv) tramite i repository ufficiali, e capire come isolare gli script personali per non compromettere la stabilità del sistema (se invece stai allestendo un computer differente, puoi consultare la guida all’installazione di Python su Windows oppure la guida all’installazione di Python su macOS).
ℹ️ Nota / Prerequisito operativo: I comandi indicati in questa guida fanno riferimento alla famiglia Debian / Ubuntu (inclusi Linux Mint, Pop!_OS, Zorin OS ed Elementary), che adotta il gestore di pacchetti
apt. Se utilizzi Fedora o Arch Linux, i concetti rimangono identici, variando unicamente il comando del gestore pacchetti (dnfopacman).
Gestione di Python su Linux a confronto
| Approccio | Sicurezza di sistema | Facilità di gestione | Quando utilizzarlo |
|---|---|---|---|
| Repository di sistema (APT/DNF) Pacchetti ufficiali mantenuti dalla distribuzione | Massima | Automatica | Per l'interprete base, pip e gli strumenti di sistema della distribuzione. |
| Ambienti Virtuali (venv) Cartelle isolate per ciascun progetto | Totale | Standard | Indispensabile per qualsiasi script o libreria installata con pip. |
| Compilazione da sorgente (python.org) Installazione manuale con make altinstall | Rischioso | Complessa | Solo per sviluppatori esperti che necessitano di una versione specifica non pacchettizzata. |
Passaggio 1 — Verificare la versione di Python 3 già presente
- Apri il Terminale della tua distribuzione (scorciatoia tipica:
Ctrl + Alt + T). - Digita il comando:
python3 --version
Il terminale risponderà restituendo la versione attualmente integrata nella tua distribuzione (ad esempio Python 3.10.12, Python 3.12.3 o superiore).
🚨 Avviso critico — Non sovrascrivere il Python di sistema: Non tentare mai di disinstallare o sovrascrivere l’eseguibile
/usr/bin/python3scaricando archivi compressi dal sito python.org. Se forzi la sostituzione del Python di sistema, rischi di bloccare gestori di pacchetti essenziali comeapte rendere instabile l’interfaccia grafica.
Passaggio 2 — Controllare (o installare) pip tramite APT
Sebbene l’interprete Python sia preinstallato, molte distribuzioni scelgono di non includere pip nell’installazione base del sistema operativo per ridurre l’impronta su disco.
Verifica prima se è già disponibile:
pip3 --version
Se ricevi l’errore Command 'pip3' not found, puoi installarlo tramite i repository ufficiali della tua distribuzione:
sudo apt update
sudo apt install python3-pip
Inserisci la tua password di amministratore (mentre digiti è normale che non compaiano asterischi nel terminale Linux) e premi Invio per confermare il download dei pacchetti.
Passaggio 3 — Installare il modulo per gli ambienti virtuali (venv)
Su Debian, Ubuntu e derivate, il modulo standard per la creazione di ambienti isolati (venv) viene distribuito come pacchetto separato rispetto all’interprete base.
Se si tenta di creare un ambiente virtuale senza averlo installato, si riceve l’errore The virtual environment was not created successfully because ensurepip is not available.
Per abilitarlo in modo definitivo, esegui:
sudo apt install python3-venv
Passaggio 4 — Comprendere l’errore “externally-managed-environment”
Su Ubuntu (dalla versione 23.04 in poi, inclusa la 24.04 LTS) e su Debian 12 (Bookworm), se provi a digitare ad esempio pip3 install requests, riceverai un messaggio di blocco:
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
Questo avviso implementa lo standard PEP 668 ed è una funzione di sicurezza fondamentale. Il sistema ti sta avvertendo che l’ambiente Python globale appartiene alla distribuzione: installare librerie a livello di sistema con pip potrebbe sovrascrivere moduli critici usati dal sistema operativo.
Come comportarsi correttamente:
- Per applicazioni già pacchettizzate per Linux: cerca il pacchetto con APT (ad esempio
sudo apt install yt-dlp). - Per i tuoi script personali: non usare mai il flag forzato
--break-system-packages. Crea invece un ambiente virtuale locale (venv) all’interno della cartella del tuo progetto:
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install requests
In questo modo, tutte le librerie scaricate risiederanno esclusivamente nella cartella .venv del tuo progetto, lasciando il sistema Linux completamente intatto e sicuro.
⚠️ Attenzione — Perché evitare –break-system-packages: Alcuni tutorial online suggeriscono di aggirare il blocco con
pip install --break-system-packages. Questa opzione disattiva le protezioni e può corrompere moduli condivisi da APT. Usa sempre gli ambienti virtuali per i tuoi script. Preferiscipython3 -m pip install …(nonpipnudo).
Risoluzione dei problemi comuni su Linux
1. Blocco del database di APT (“Could not get lock /var/lib/dpkg/lock-frontend”)
Se ricevi un errore di lock mentre usi apt, significa che un altro processo di aggiornamento (come il gestore aggiornamenti automatici di GNOME) è attivo in background. Attendi qualche minuto o verifica i processi attivi prima di rilanciare il comando.
2. Equivalenti per altre distribuzioni Linux
Se utilizzi distribuzioni diverse dalla famiglia Debian/Ubuntu:
- Fedora / RHEL:
sudo dnf install python3-pip python3-virtualenv - Arch Linux / Manjaro:
sudo pacman -S python-pip python-virtualenv
Domande Frequenti (FAQ)
Perché non dovrei usare “pip install” con “sudo”?
Lanciare sudo pip install installa pacchetti con permessi di root nella cartella /usr/local/lib/python3.x/dist-packages. Questo rischia di sovrascrivere file gestiti dal gestore pacchetti della distribuzione e introduce rischi di sicurezza se il pacchetto scaricato contiene codice dannoso.
Come faccio a verificare dove è installato Python su Linux?
Puoi interrogare il sistema con il comando which python3 (generalmente risponde con /usr/bin/python3) oppure python3 -c "import sys; print(sys.executable)".
Posso installare versioni più recenti di Python senza rompere il sistema?
Sì. Per testare versioni più recenti senza toccare il Python di sistema puoi utilizzare strumenti di isolamento come pyenv o container come Docker / Podman.
È necessario compilare Python dai sorgenti?
No, per l’esecuzione di script pratici e automazioni locali l’interprete fornito dai repository ufficiali della tua distribuzione è ottimizzato, sicuro e pronto all’uso.
Cosa significa l’errore “externally-managed-environment” quando uso pip su Linux?
È la protezione PEP 668: la distro ti sta dicendo di non installare pacchetti pip sul Python di sistema. Crea un ambiente virtuale (python3 -m venv .venv, poi attivalo) e installa lì con python3 -m pip install …. Evita sudo pip install: rischia di mischiare pacchetti APT e PyPI.
Prossimi passi
Ora che hai verificato la presenza di Python, installato pip e aggiunto il modulo venv sul tuo sistema Linux, hai completato la configurazione di base su tutte e tre le piattaforme principali (Windows, macOS e Linux).
Il prossimo passo naturale è creare un ambiente virtuale (venv) per isolare gli script. La procedura completa è già autonoma in Ambienti virtuali Python (venv) in 5 minuti — lettura consigliata, non obbligatoria per aver installato Python.