Pip (gestore pacchetti)

pip
software
Output di pip --help
Output di pip --help
Output di pip --help
GenereSistema di gestione dei pacchetti
SviluppatoreIan Bicking
Data prima versione28 ottobre 2008 [1]
Ultima versione24.3 (27 ottobre 2024)
Sistema operativoMultipiattaforma
LicenzaLicenza MIT [2]
(licenza libera)
Sito webpip.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]

Interfaccia a riga di comando

[modifica | modifica wikitesto]
Output di pip install virtualenv

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

Utilizzo setup.py

[modifica | modifica wikitesto]

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 .

Repository personalizzato

[modifica | modifica wikitesto]

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> .

  • Conda (gestore pacchetti) per la distribuzione Anaconda
  • PyPM - Gestore di pacchetti proprietario di ActiveState
  1. ^ Pip 0.2, su PyPI. URL consultato il 27 agosto 2024.
  2. ^ pip/LICENSE.txt (TXT), su Github, 17 aprile 2018. URL consultato il 1º giugno 2018 (archiviato dall'url originale il 1º giugno 2018).
  3. ^ (EN) Opensource.com, https://opensource.com/article/19/4/managing-python-packages.
  4. ^ packaging.python.org, https://packaging.python.org/en/latest/guides/tool-recommendations/. URL consultato il 9 novembre 2022.
  5. ^ python.org, https://www.python.org/dev/peps/pep-0503.
  6. ^ pip.pypa.io, https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-0.
  7. ^ pip.pypa.io, https://pip.pypa.io/en/latest/installing.html.
  8. ^ openplans.org, http://www.openplans.org/projects/topp-engineering/blog/2008/09/24/pyinstall-a-new-hope/.
  9. ^ a b Python Packaging Authority, https://www.pypa.io/en/latest/history/.
  10. ^ ianbicking.org, https://www.ianbicking.org/blog/2008/10/pyinstall-pybundles.html.
  11. ^ ianbicking.org, https://www.ianbicking.org/blog/2008/10/pyinstall-is-dead-long-live-pip.html.
  12. ^ pip.pypa.io, https://pip.pypa.io/en/stable/news/#id443.
  13. ^ pip-installer.org, http://www.pip-installer.org/.
  14. ^ (EN) Gaurav Gahlot, Most Important pip Commands for a Python Developer - DZone Open Source, su dzone.com, 6 novembre 2018. URL consultato il 23 giugno 2019.
  15. ^ python.land, https://python.land/virtual-environments/installing-packages-with-pip#Custom_repository_with_pip_install_-i.

Collegamenti esterni

[modifica | modifica wikitesto]
  Portale Software libero: accedi alle voci di Wikipedia che trattano di software libero