Quando usare pip install e quando no (la regola di ai riparo)
Installare pacchetti Python con pip è comodissimo, ma nasconde rischi per sicurezza e stabilità. Scopri quando usarlo e perché preferisco evitarlo.
Se hai cercato online “come fare X con Python”, avrai quasi certamente trovato tutorial che iniziano chiedendoti di aprire il terminale e digitare qualcosa che inizia con pip install. È comodissimo — e proprio questa facilità crea una falsa percezione di sicurezza.
pip è il gestore di pacchetti ufficiale di Python: una sorta di App Store gratuito per i programmatori. Se ti serve leggere Excel, scaricare video o creare grafici, c’è spesso una libreria già pronta. In questo articolo ti mostro quando usare pip install e quando è meglio evitarlo, e perché gli script locali di ai riparo cercano (quasi) sempre di farne a meno.
ℹ️ Nota operativa
Regola pratica su ai riparo: se proprio usi pip, dentro unvenvattivo e con comando affidabile —
Windows:python -m pip install nome-pacchetto· macOS/Linux:python3 -m pip install nome-pacchetto
(maipip installnudo sul Mac).
Letture opzionali: Terminale: comandi minimi, Ambienti virtuali (venv), installazione Python (Windows, macOS, Linux).
Il lato oscuro di pip: il typosquatting
PyPI (il deposito centrale da cui pip scarica i pacchetti) è un sistema aperto. Chiunque, in qualsiasi parte del mondo, può caricare una libreria e darle un nome.
Questo apre le porte a una tecnica di attacco molto comune chiamata typosquatting (giocare sugli errori di battitura).
Prendi come esempio requests, una delle librerie legittime più usate per collegarsi a internet con Python. Se per distrazione digiti:
# COMANDO ERRATO E PERICOLOSO — non eseguirlo
pip install request
invece di scaricare la libreria ufficiale, potresti scaricare un pacchetto malevolo registrato senza la “s” finale. Appena premi Invio, il codice viene scaricato ed eseguito sul tuo PC.
🚨 Avviso critico — La regola d’oro dei pacchetti: Non fare mai copia-incolla di comandi
pip installgenerati da intelligenze artificiali (ChatGPT, Claude, Cursor) o trovati su forum sconosciuti senza prima aver verificato su pypi.org il nome esatto del pacchetto, la data di pubblicazione, i download e il repository sorgente. È lo stesso principio descritto nell’analisi sui rischi nascosti del vibe coding.
Il rischio per il sistema operativo
Oltre alla sicurezza, c’è un problema di stabilità. Come spiegato in Ambienti virtuali Python (venv) in 5 minuti, usare pip install a livello globale significa installare librerie direttamente nell’interprete centrale del computer.
Su Linux questo è diventato talmente critico da rischiare di rompere parti del sistema. Non è un caso che oggi, se provi a usare pip globalmente su Ubuntu o Debian, il sistema ti blocchi con l’errore externally-managed-environment (ne ho parlato nella guida all’installazione di Python su Linux).
Se proprio ti serve un pacchetto esterno: installalo dentro un venv, mai “a mano libera” sull’interprete di sistema.
La filosofia di ai riparo: “Batteries Included”
Per mitigare questi rischi, la linea tecnica di ai riparo si basa su un concetto fondante di Python: “Batteries included” (batterie incluse).
Quando installi Python, non stai installando solo un linguaggio: stai installando anche un’enorme libreria standard (Standard Library). Sono decine di moduli sicuri, mantenuti dai creatori di Python, già presenti sul disco.
Moduli come os (cartelle e file), csv (fogli di calcolo), json (dati strutturati), hashlib (checksum e crittografia) o tkinter (finestre grafiche) non richiedono alcun pip install.
Ecco perché la maggior parte degli script che pubblico:
- Sono file unici — puoi leggerli da cima a fondo.
- Non richiedono internet — se usano solo la libreria standard, funzionano anche offline.
- Zero dipendenze esterne — li scarichi e li esegui, senza typosquatting e senza supply-chain a sorpresa.
Sintesi: quando usare pip?
Non sto dicendo che pip sia il male assoluto. Per strumenti complessi (elaborazione immagini avanzata, machine learning, automazione di browser) è spesso indispensabile. Ecco uno schema decisionale pratico:
| Scenario | Usare pip? | Cosa fare in pratica |
|---|---|---|
Lo script usa solo la libreria standard
os, csv, json, hashlib…
|
No | Esegui il file .py così com'è. Nessuna installazione aggiuntiva. |
Serve una libreria esterna consolidata
Es. requests, strumenti con migliaia di download
|
Sì, con cautela | Verifica il nome su PyPI, poi installa solo dentro un venv. |
Comando trovato su forum / generato dall'IA
Copia-incolla di pip install … non verificato
|
No | Ferma tutto. Controlla nome, autore, repository e data di pubblicazione prima di qualsiasi install. |
| Installazione globale sul Python di sistema Senza ambiente virtuale, soprattutto su Linux | Mai | Rischio di typosquatting e di corrompere moduli del sistema operativo. |
Se proprio usi pip: procedura sicura pezzo per pezzo
Quando la tabella sopra dice «Sì, con cautela», segui questo flusso. Non copiare pip install … nudo da un forum.
1) Ambiente virtuale attivo
Nella cartella del progetto (dopo aver creato .venv):
Windows:
.venv\Scripts\activate.bat
(In PowerShell: .venv\Scripts\Activate.ps1.)
macOS / Linux:
source .venv/bin/activate
Devi vedere (.venv) nel prompt. Se manca, ripeti l’attivazione (guida opzionale: ambienti virtuali venv).
2) Il comando affidabile (non pip da solo)
Windows:
python -m pip install nome-pacchetto
macOS / Linux:
python3 -m pip install nome-pacchetto
Cosa significa ogni pezzo
python/python3— l’interprete del venv (con(.venv)attivo). È quello giusto.-m pip— “esegui il modulopipdi questo Python”. Evita di chiamare unpip.exeglobale diverso dall’interprete.install— sotto-comando: scarica e installa nel venv corrente.nome-pacchetto— nome esatto su pypi.org (es.Pillow, non un typo tipopilow).
⚠️ Attenzione — Su macOS, digitare solo
pip install …può non fare nulla di utile o usare un pip sbagliato. Preferisci semprepython3 -m pip ….
3) Opzioni utili (una per una)
Non ti servono tutte ogni volta. Ecco quelle che incontri di più:
Solo install (default utile)
Windows: python -m pip install requests
macOS/Linux: python3 -m pip install requests
--upgrade — aggiorna se il pacchetto è già presente a una versione più vecchia.
Windows:
python -m pip install --upgrade pip
macOS / Linux:
python3 -m pip install --upgrade pip
(Aggiornare pip dentro il venv è spesso il primo passo se l’installer si lamenta di versioni vecchie.)
--version — controlla quale pip stai usando (deve puntare dentro .venv).
Windows: python -m pip --version
macOS/Linux: python3 -m pip --version
list — elenca i pacchetti nel venv attivo.
Windows: python -m pip list
macOS/Linux: python3 -m pip list
show nome-pacchetto — dettagli (versione, percorso) di un pacchetto installato.
Windows: python -m pip show Pillow
macOS/Linux: python3 -m pip show Pillow
4) Output atteso e verifica
Dopo install cerca una riga tipo Successfully installed …. Poi verifica l’import:
Windows:
python -c "import requests; print(requests.__version__)"
macOS / Linux:
python3 -c "import requests; print(requests.__version__)"
(Sostituisci requests / Pillow con il modulo reale; a volte il nome import ≠ nome PyPI.)
5) Cosa non fare
pip install …senzapython -m/python3 -msudo pip install …su Linux- install globale “per comodità” fuori dal venv
- pacchetti suggeriti dall’IA senza controllo su PyPI
Domande Frequenti (FAQ)
Quando è sensato usare pip install?
Quando ti serve davvero una libreria esterna (es. Pillow per le immagini) dentro un ambiente virtuale del progetto, dopo aver verificato nome e popolarità su PyPI. Non come riflesso automatico per ogni script scaricato.
Perché evitare pip install globale sul Python di sistema?
Su Linux può rompere pacchetti gestiti da APT (errore externally-managed-environment). Su qualsiasi OS mischiare dipendenze di progetti diversi nello stesso interprete crea conflitti difficili da debuggare. Preferisci sempre un venv.
Come installo un pacchetto in modo affidabile su Windows, macOS e Linux?
Con l’ambiente attivo: su Windows python -m pip install nome-pacchetto; su macOS/Linux python3 -m pip install nome-pacchetto. Aspetta Successfully installed…, poi verifica con python -c "import nome_pacchetto" / python3 -c "…".
Cos’è il typosquatting su PyPI e come mi difendo?
È la pubblicazione di pacchetti con nomi quasi uguali a librerie famose. Controlla lo spelling esatto, la data di creazione, i download e il repository collegato prima di installare ciò che ti suggerisce un’IA o un tutorial copiato in fretta.
Gli script di ai riparo richiedono spesso pip install?
Di solito no: quando posso, resto sulla libreria standard proprio per ridurre superficie di attacco e attrito. Se uno script ha dipendenze, sono dichiarate in pagina con comandi python -m pip / python3 -m pip e, dove serve, verifica SHA-256 del download.
Conclusione
La prossima volta che scarichi uno script di ai riparo e non vedi istruzioni per installare pacchetti aggiuntivi, non è un errore: è una scelta di design deliberata, pensata per lavorare in locale con la massima tranquillità.
💡 Lettura opzionale: Come verificare un download con SHA-256 — utile quando scarichi uno script e vuoi confrontare l’impronta pubblicata dall’autore.