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 --versionVedrai 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 --versionAggiornare pip
pip rilascia nuove versioni frequentemente. Tienilo aggiornato per evitare avvisi del resolver:
python -m pip install --upgrade pipInstallare i pacchetti
Installazione di base
pip install requestspip 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.0Puoi 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.txtUn tipico requirements.txt ha questo aspetto:
requests==2.31.0
flask>=3.0,<4.0
sqlalchemyInstallare 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 requestsIl 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 listEsempio di output:
Package Version
---------- -------
pip 24.0
requests 2.31.0
setuptools 69.0.3Mostrare i dettagli di un pacchetto
pip show requestsL'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 checkpip 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 requestsQuesto 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 --upgradeUsa 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 requestspip chiede conferma prima di rimuovere il pacchetto. Passa -y per saltare la richiesta negli script:
pip uninstall -y requestsEsportare 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.txtL'output ha questo aspetto:
certifi==2024.2.2
charset-normalizer==3.3.2
idna==3.6
requests==2.31.0
urllib3==2.2.1Condividi 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 requestsConsulta 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 requestsAggiungi -v due volte (-vv) per ancora più dettagli, incluse le richieste HTTP che pip invia a PyPI.
Errori comuni e soluzioni
| Errore | Causa probabile | Soluzione |
|---|---|---|
command not found: pip | pip non è nel PATH o non è installato | Usa python -m pip o installa pip tramite ensurepip |
Permission denied | Nessun accesso in scrittura al Python di sistema | Aggiungi --user o attiva un ambiente virtuale |
Could not find a version that satisfies the requirement | Il nome del pacchetto è errato o la versione non esiste | Verifica il nome esatto su pypi.org |
ResolutionImpossible | Requisiti di versione in conflitto tra i pacchetti | Usa pip check per identificare i conflitti; allenta i vincoli di versione |
SSL certificate verify failed | Proxy aziendale o certificati obsoleti | Aggiorna il bundle CA o usa --trusted-host pypi.org |
Tabella di riferimento rapido
| Operazione | Comando |
|---|---|
| Verificare la versione di pip | pip --version |
| Installare un pacchetto | pip install requests |
| Installare una versione specifica | pip install requests==2.31.0 |
| Installare da un file requirements | pip install -r requirements.txt |
| Aggiornare un pacchetto | pip install --upgrade requests |
| Disinstallare un pacchetto | pip uninstall requests |
| Elencare i pacchetti installati | pip list |
| Mostrare i dettagli di un pacchetto | pip show requests |
| Esportare l'ambiente corrente | pip freeze > requirements.txt |
| Verificare i conflitti | pip 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