W3docs

Python PIP

Scopri come usare pip per installare, aggiornare e rimuovere pacchetti Python, fissare versioni, esportare dipendenze ed evitare errori comuni.

pip è il gestore di pacchetti integrato di Python. Scarica i pacchetti da PyPI (il Python Package Index) e li installa in modo che tu possa usare import nel tuo codice. Se hai Python 3.4 o versioni successive, pip è già incluso — non è necessaria un'installazione separata.

Questo capitolo copre tutto il necessario per usare pip con sicurezza: verificare l'installazione, installare e rimuovere pacchetti, fissare versioni, esportare dipendenze e correggere errori comuni.

Verificare l'installazione di pip

Apri un terminale ed esegui:

pip --version

Vedrai un output simile a:

pip 24.0 from /usr/lib/python3/dist-packages/pip (python 3.12)

Se il comando non viene trovato, o se hai più versioni di Python, usa invece la forma python -m pip — garantisce che tu stia eseguendo pip per l'interprete Python desiderato:

python -m pip --version

Aggiornare pip

pip rilascia nuove versioni frequentemente. Tienilo aggiornato per evitare avvisi del resolver:

python -m pip install --upgrade pip

Installare i pacchetti

Installazione di base

pip install requests

pip scarica requests e tutte le sue dipendenze da PyPI e le installa nell'ambiente Python attivo. Dopo l'installazione puoi importare il pacchetto immediatamente.

Installare una versione specifica

Fissa una versione esatta quando la riproducibilità è importante:

pip install requests==2.31.0

Puoi anche esprimere intervalli di versioni usando operatori di confronto:

pip install "requests>=2.28,<3.0"

Metti sempre tra virgolette gli intervalli nella shell per evitare che < e > vengano interpretati come reindirizzamenti.

Installare da un file requirements

Un file requirements.txt elenca tutti i pacchetti necessari a un progetto, uno per riga. Installa ogni pacchetto nel file con un singolo comando:

pip install -r requirements.txt

Un tipico requirements.txt ha questo aspetto:

requests==2.31.0
flask>=3.0,<4.0
sqlalchemy

Installare in modalità modificabile

Quando stai sviluppando un pacchetto locale e vuoi che le modifiche abbiano effetto senza reinstallare, usa il flag -e:

pip install -e .

Questo collega la directory del pacchetto direttamente all'ambiente invece di copiare i file.

Installare solo per l'utente corrente

Se non hai i permessi per scrivere nella directory Python di sistema e non stai usando un ambiente virtuale, aggiungi --user:

pip install --user requests

Il pacchetto viene installato nella tua home directory (~/.local/ su Linux/macOS). Questa è un'alternativa di riserva — usare un ambiente virtuale è quasi sempre la scelta migliore.

Elencare e ispezionare i pacchetti

Elencare tutti i pacchetti installati

pip list

Esempio di output:

Package    Version
---------- -------
pip        24.0
requests   2.31.0
setuptools 69.0.3

Mostrare i dettagli di un pacchetto

pip show requests

L'output include versione, autore, licenza, posizione di installazione e — aspetto importante — cosa richiede e cosa lo richiede:

Name: requests
Version: 2.31.0
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
License: Apache 2.0
Location: /usr/lib/python3/dist-packages
Requires: certifi, charset-normalizer, idna, urllib3
Required-by:

Verificare i conflitti di versione

pip check

pip analizza tutti i pacchetti installati e segnala eventuali requisiti incompatibili. Se tutto è a posto, il comando termina senza output.

Aggiornare e rimuovere i pacchetti

Aggiornare un pacchetto

pip install --upgrade requests

Questo installa la versione più recente che soddisfa eventuali vincoli già presenti nel tuo ambiente.

Aggiornare tutti i pacchetti (nessun comando integrato)

pip non dispone di un singolo comando per aggiornare tutti i pacchetti installati. Una soluzione comune che usa pip list e xargs:

pip list --outdated --format=freeze | cut -d = -f 1 | xargs pip install --upgrade

Usa questa opzione con cautela in un ambiente di progetto — aggiornamenti di massa possono introdurre modifiche incompatibili. I file requirements.txt con versioni fissate sono un'alternativa più sicura.

Disinstallare un pacchetto

pip uninstall requests

pip chiede conferma prima di rimuovere il pacchetto. Passa -y per saltare la richiesta negli script:

pip uninstall -y requests

Esportare le dipendenze

Congelare l'ambiente corrente

pip freeze restituisce ogni pacchetto installato con la sua versione esatta in un formato adatto a un file requirements.txt:

pip freeze > requirements.txt

L'output ha questo aspetto:

certifi==2024.2.2
charset-normalizer==3.3.2
idna==3.6
requests==2.31.0
urllib3==2.2.1

Condividi requirements.txt con i tuoi colleghi o includilo nel repository in modo che chiunque possa riprodurre il tuo ambiente con pip install -r requirements.txt.

pip e gli ambienti virtuali

Per impostazione predefinita pip installa i pacchetti globalmente (o per utente con --user). Questo causa problemi quando due progetti necessitano di versioni diverse della stessa libreria.

La soluzione è un ambiente virtuale: un'installazione Python isolata che ha il proprio pip e la propria directory site-packages. Quando un ambiente virtuale è attivo, pip install influisce solo su quell'ambiente.

# Create a virtual environment named .venv
python -m venv .venv

# Activate it (macOS / Linux)
source .venv/bin/activate

# Activate it (Windows)
.venv\Scripts\activate

# Now pip works inside the isolated environment
pip install requests

Consulta il capitolo Python Virtual Environments per il flusso di lavoro completo.

Ottenere output dettagliato

Quando un'installazione fallisce, il messaggio di errore predefinito può essere criptico. Aggiungi --verbose (o -v) per vedere ogni passaggio che pip esegue:

pip install --verbose requests

Aggiungi -v due volte (-vv) per ancora più dettagli, incluse le richieste HTTP che pip invia a PyPI.

Errori comuni e soluzioni

ErroreCausa probabileSoluzione
command not found: pippip non è nel PATH o non è installatoUsa python -m pip o installa pip tramite ensurepip
Permission deniedNessun accesso in scrittura al Python di sistemaAggiungi --user o attiva un ambiente virtuale
Could not find a version that satisfies the requirementIl nome del pacchetto è errato o la versione non esisteVerifica il nome esatto su pypi.org
ResolutionImpossibleRequisiti di versione in conflitto tra i pacchettiUsa pip check per identificare i conflitti; allenta i vincoli di versione
SSL certificate verify failedProxy aziendale o certificati obsoletiAggiorna il bundle CA o usa --trusted-host pypi.org

Tabella di riferimento rapido

OperazioneComando
Verificare la versione di pippip --version
Installare un pacchettopip install requests
Installare una versione specificapip install requests==2.31.0
Installare da un file requirementspip install -r requirements.txt
Aggiornare un pacchettopip install --upgrade requests
Disinstallare un pacchettopip uninstall requests
Elencare i pacchetti installatipip list
Mostrare i dettagli di un pacchettopip show requests
Esportare l'ambiente correntepip freeze > requirements.txt
Verificare i conflittipip check

Capitoli correlati

  • Python Modules — comprendi come Python importa il codice prima di installare pacchetti di terze parti
  • Python Virtual Environments — isola le dipendenze del progetto in modo che le installazioni pip non entrino mai in conflitto

Pratica

Pratica
Which pip command exports all installed package versions to a file?
Which pip command exports all installed package versions to a file?
Was this page helpful?