Python pratico

Quando usare pip install e quando no (la regola di ai riparo)

Aggiornato 8 min di lettura
Laptop scuro frontale su superficie opaca, finestra terminale in alto al centro con output di installazione pacchetti illegibile e bordi illuminati in arancione
Windows macOS Linux
Immagine generata: Alex Lunalbi · Gemini · 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 un venv attivo e con comando affidabile —
Windows: python -m pip install nome-pacchetto · macOS/Linux: python3 -m pip install nome-pacchetto
(mai pip install nudo 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 install generati 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:

  1. Sono file unici — puoi leggerli da cima a fondo.
  2. Non richiedono internet — se usano solo la libreria standard, funzionano anche offline.
  3. 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 modulo pip di questo Python”. Evita di chiamare un pip.exe globale diverso dall’interprete.
  • install — sotto-comando: scarica e installa nel venv corrente.
  • nome-pacchetto — nome esatto su pypi.org (es. Pillow, non un typo tipo pilow).

⚠️ Attenzione — Su macOS, digitare solo pip install … può non fare nulla di utile o usare un pip sbagliato. Preferisci sempre python3 -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 … senza python -m / python3 -m
  • sudo 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.

Alex Lunalbi

Alex Lunalbi

Security & privacy

Dona su PayPal

Scrivo di sicurezza digitale pratica e codice IA. Su ai riparo ogni procedura è verificata su macchine reali.

Tag
  • python,
  • pip,
  • sicurezza,
  • programmazione