Introduzione
La potenza di Python è proprio la ricchezza di librerie che sono disponibili online. Queste librerie possono essere scaricate sul proprio ambiente di sviluppo sotto forma di pacchetti o packages. Le librerie utilizzate sul proprio sistema vanno via via accumulandosi e la loro gestione potrebbe risultare problematica se non vi fossero strumenti adeguati.
La gestione dei pacchetti in Python può essere davvero una cosa facile se si usano i giusti strumenti e Pip è uno di questi.
Pip e PyPI – il Python Package Index
Tutti i pacchetti più utilizzati dalla comunità di sviluppatori in Python vengono raccolti da anni in un repository unico e mondiale chiamato PyPI (Python Package Index). In questo repository, tutti i pacchetti vengono ordinati, documentati e versionati con un opportuno controllo per le dipendenze.
PIP è uno strumento fondamentale che ti permette di scaricare, aggiornare (praticamente sincronizzare) tutti i pacchetti del repository di cui hai bisogno, avendo la cura di controllare le opportune dipendenze e le loro versioni di compatibilità
Installazione di Pip
Generalmente in molte distribuzioni di Python, pip dovrebbe essere già incluso. Infatti per tutte le versioni di Python 2 >2.7.9 e Python 3 >3.4, pip è gia installato. Stessa cosa se si è creato un ambiente virtuale con con virtualenv o pyenv.
L’installazione è semplice
Su Ubunto e Debian
$ sudo apt-get install python-pip
Se Fedora
$ sudo yum install python-pip
Su Mac
$ sudo easy_install pip
Ma se non fosse così, è possibile installarlo facendo il download di uno script in Python creato appositamente e poi eseguirlo.
wget https://bootstrap.pypa.io/get-pip.py python get-pip.py
Utilizzare PIP – I Comandi
Pip, oltre ad essere molto utile, è anche molto semplice da utilizzare. Basta richiamare da terminale pip seguito da un’opzione (comando) che non è altro l’operazione che vogliamo fargli fare.
Installazione di un pacchetto
Per esempio per installare un pacchetto, è sufficiente scrivere
pip install nomepacchetto
Pip si connetterà in rete con il repository, poi effettuerà una ricerca per trovare il pacchetto da te richiesto. Controllerà poi se esiste una versione compatibile con la tua versione di Python e con il sistema operativo che stai utilizzando.
Poi ti chiederà conferma se vuoi installare con classica scelta Yes or No. Poi se confermata comincerà ad installare il pacchetto ed eventuali altri pacchetti che sono richiesti per il suo funzionamento.
Disinstallare un pacchetto
La rimozione di un pacchetto è ancora più semplice
pip uninstall nomepacchetto
Elenco pacchetti installati
Per ottenere l’elenco dei pacchetti installati sul proprio sistema
pip freeze
o
pip list
Ricercare un determinato pacchetto nel repository PyPI
Infine se si vuole sapere sia l’esistenza che informazioni di un determinato pacchetto all’interno del repository PyPI senza doverlo installare, si scrive il seguente comando:
pip show nomepacchetto
Aggiornare PIP
Comunque Python è un linguaggio che sta vivendo un grande fermento e quindi ogni mese sono presenti sempre numerose nuove release, compreso PIP. Quindi è importante controllare se PIP stesso è aggiornato all’ultima versione
Per aggiornare PIP è sufficiente scrivere
pip install --upgrade pip
e il sistema comincerà a scrivere i seguenti comandi
You are using pip version 6.1.1, however version 9.0.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command. C:\Users\Fabio\Anaconda\lib\site-packages\pip\_vendor\requests\packages\urllib3\util\ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. InsecurePlatformWarning Collecting pip Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB) 100% |################################| 1.3MB 264kB/s Installing collected packages: pip Found existing installation: pip 6.1.1 DEPRECATION: Uninstalling a distutils installed project (pip) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project. Uninstalling pip-6.1.1: Successfully uninstalled pip-6.1.1 Failed to write executable - trying to use .deleteme logic Successfully installed pip-9.0.1
Una volta aggiornato PIP, possiamo sapere quali pacchetti hanno delle versioni più recenti rispetto a quelle attualmente installate sul tuo sistema
pip list --outdated --format=columns
Otterrai una tabella con il nome dei pacchetti, la versione corrente installata sul tuo sistema e la versione più recente presente nel repository
Package Version Latest Type ---------------------------- ------- ----------- ----- argcomplete 0.8.1 1.7.0 wheel astropy 0.4.2 1.3 sdist atom 0.3.9 0.3.10 sdist backports.ssl-match-hostname 3.4.0.2 3.5.0.1 sdist beautifulsoup4 4.3.2 4.5.3 wheel
Aggiornare tutti i pacchetti o packages con un solo comando
E’ strano ma vero, non esiste un comando semplice e diretto per aggiornare tutti i pacchetti che abbiamo installato sul nostro sistema. E allora?
Bene esiste una riga abbastanza complessa con una pipe di diversi comandi che permette di fare ciò:
pip freeze --local | grep -v '^\e' | cut -d = -f 1 | xargs -n1 pip install -U
e il sistema comincerà ad aggiornarsi un pacchetto dopo l’altro. L’operazione potrebbe richiedere parecchi minuti.[:en]