pip software | |
---|---|
Output di pip --help
| |
Genere | Sistema di gestione dei pacchetti |
Sviluppatore | Ian Bicking |
Data prima versione | 28 ottobre 2008 [1] |
Ultima versione | 24.3 (27 ottobre 2024) |
Sistema operativo | Multipiattaforma |
Licenza | Licenza MIT [2] (licenza libera) |
Sito web | pip.pypa.io/ |
Pip Installs Packages in sigla pip (o pip3 dalla versione 3 di Python) è uno strumento a linea di comando fondamentale nell'ecosistema Python. La sua funzione primaria è quella di gestire l'installazione, l'aggiornamento e la rimozione di pacchetti Python, ovvero di quelle librerie e moduli aggiuntivi che estendono le funzionalità di base del linguaggio.[3]
E' lo strumento raccomandato dalla Python Software Foundation per l'installazione delle applicazioni Python e delle relative dipendenze.[4] Pip accede al Python Package Index un repository di pacchetti software scritti in Python dove gli sviluppatori possono cercare, scaricare e condividere pacchetti. Pip può anche essere configurato per connettersi ad altri repository (locali o remoti), a condizione che siano conformi alla Python Enhancement Proposal 503 [5][6] che definisce un'interfaccia semplice e standardizzata per i repository di pacchetti.
La maggior parte delle distribuzioni Python hanno pip preinstallato. Python 2.7.9 e versioni successive (per quanto riguarda la serie python2) e Python 3.4 e versioni successive includono pip per impostazione predefinita.[7]
Pip è stato introdotto come pyinstall nel 2008 da Ian Bicking, creatore di virtualenv, quale alternativa a easy_install.[8][9] Il nome "pip" è stato scelto tra una serie di suggerimenti ricevuti dal creatore stesso attraverso il suo blog.[10] "Pip" è l'acronimo ricorsivo per "Pip Installs Packages".[11]
Nel 2011, è stata creata la Python Packaging Authority (PyPA) da Bicking, guidata da Carl Meyer, Brian Rosner e Jannis Leidel.[9]
L'obiettivo della PyPA è quello di supervisionare e migliorare gli strumenti e le infrastrutture di packaging di Python. Tra gli scopi della PyPa ci sono quelli di standardizzare la distribuzione e l'installazione di pacchetti Python anche attraverso le Proposte di Miglioramento di Python (PEP) che regolano i formati di packaging e le API.
La Python Packaging Authority (PyPA) sviluppa e mantiene strumenti essenziali per il packaging, come pip, setuptools e il formato wheel.
Con il rilascio della versione 6.0 di pip (22 dicembre 2014) è stato modificato il processo di denominazione della versione passando dalla numerazione in stile X.Y.1
alla più semplice X.Y.
La nuova numerazione rende più evidente quando un aggiornamento introduce nuove funzionalità o comporta cambiamenti significativi.[12]
L'interfaccia della riga di comando di pip consente l'installazione di pacchetti software Python attraversi uk comando: pip install nome-pacchetto
Gli utenti possono rimuovere il pacchetto con il comando: pip uninstall nome-pacchetto
pip consente di creare un elenco tutti i pacchetti Python e delle loro versioni specifiche necessari per un progetto. Una sorta di "ricetta" per ricostruire esattamente lo stesso ambiente Python su un altro computer o in un ambiente virtuale. Questo elenco prende il nome di 'requirements'.[13]
Tale file consente di ricreare rapidamente e in modo efficiente l'intero ambiente di pacchetti Python su un altro computer o in un ambiente virtuale.[14]
La generazione di tale file avviene tramite il comando: pip install -r requirements.txt
Per installare un pacchetto per una versione specifica di Python, pip fornisce il seguente comando, dove ${version}
viene sostituito da 2, 3, 3.4, ecc.: pip${version} install nome-pacchetto
Pip consente l'installazione locale di progetti definiti dall'utente con l'uso di un file denominato setup.py. Questo metodo di installazione richiede che il progetto Python abbia la seguente struttura di file:
esempio_progetto/ ├── progetto_di_esempio/ Pacchetto Python con codice sorgente. | ├── __init__.py Imposta la cartella come pacchetto. | └── esempio.py Modulo di esempio. └── README.md README con informazioni sul progetto.
All'interno di questa struttura è possibile aggiungere un file setup.py
nella directory principale del progetto (progetto_di_esempio in questo caso) con il seguente contenuto:
from setuptools import setup, find_packages
setup(
name='esempio', # Nome del pacchetto. Questo sarà usato quando il progetto sarà importato come pacchetto.
version='0.1.0',
packages=find_packages(include=['progetto_di_esempio', 'progetto_di_esempio.*']) # Pip installerà automaticamente le dipendenze fornite qui.
)
Dopodiché, sarà possibile installare questo progetto personalizzato eseguendo il seguente comando dalla directory radice del progetto: pip install -e
.
Oltre al repository PyPI è possibile gestire repository personalizzati.[15] Tali repository possono essere ubicati su un URL HTTP(s) o in una posizione del file system.
È possibile specificare un repository personalizzato utilizzando l'opzione -i o index-url, in questo modo: pip install -i https://repository_personale/esempio <package name>
; oppure con un file system: pip install -i /path/tuo/repository_personale/esempio <package name>
.