User Tools

Site Tools


doc:appunti:prog:python_pip

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
doc:appunti:prog:python_pip [2019/10/23 08:07] – created niccolodoc:appunti:prog:python_pip [2022/01/03 21:05] (current) – [Elenco delle librerie installate] niccolo
Line 15: Line 15:
   * **python3-pip**   * **python3-pip**
  
 +===== Esempio libreria openpyxl =====
 +
 +Su **Debian 9 Stretch** esiste il pacchetto **python-openpyxl 2.3.0**. Se si desidera una versione più recente è necessario anzitutto disinstallare il pacchetto Debian, altrimenti PIP si rifiuta di procedere con l'installazione:
 +
 +<code>
 +pip install openpyxl
 +Requirement already satisfied: openpyxl in /usr/lib/python2.7/dist-packages
 +Requirement already satisfied: jdcal in /usr/lib/python2.7/dist-packages (from openpyxl)
 +</code>
 +
 +Quindi si rimuove il pacchetto Debian:
 +
 +<code>
 +dpkg --purge python-openpyxl
 +</code>
 +
 +A questo punto si può fare l'installazione con PIP:
 +
 +<code>
 +pip install openpyxl
 +</code>
 +
 +Avendo eseguito l'operazione con l'**utente root**, l'installazione sarà //system wide//, cioè disponibile a tutti gli utenti di sistema. Infatti i file sono stati installati in **/usr/local/lib/python2.7/dist-packages/**.
 +
 +==== Download senza installazione ====
 +
 +È consigliabile **scaricare e salvare localmente** gli archivi di installazione, per poter ripetere l'installazione qualora il repository venga a mancare.
 +
 +Per scaricare un archivio e le sue dipendenze senza installarle si può usare la seguente sintassi (valida con **pip versione 18.1**, incluso in Debain 10 Buster):
 +
 +<code>
 +pip download openpyxl
 +</code>
 +
 +Con versioni precedenti di pip il comando è diverso, ad esempio con **pip versione 1.5.6** incluso in Debian 8 Jessie:
 +
 +<code>
 +pip install --download /usr/local/src openpyxl
 +</code>
 +
 +
 +
 +
 +Nel nostro caso sono stati scaricati tre archivi, uno della libreria vera e propria e due per dipendenza:
 +
 +  * **openpyxl-2.6.4.tar.gz**
 +  * **et_xmlfile-1.0.1.tar.gz**
 +  * **jdcal-1.4.1-py2.py3-none-any.whl**
 +
 +Questi archivi possono essere installati da file locale (invece che scaricandoli dal repository) con il semplice:
 +
 +<code>
 +pip install et_xmlfile-1.0.1.tar.gz
 +pip install jdcal-1.4.1-py2.py3-none-any.whl
 +pip install openpyxl-2.6.4.tar.gz
 +</code>
 +
 +==== Installazione da repository locale contenente setup.py ====
 +
 +Molte librerie Python vengono distribuite con lo script **setup.py** che contiene anche le informazioni sulle dipendenze. La via predefinita per installare queste librerie sarebbe l'esecuzione di:
 +
 +<code>
 +python3 setup.py install
 +</code>
 +
 +Tuttavia si può anche utilizzare il sistema PIP, con il seguente comando da eseguire nella directory che contiene ''setup.py'':
 +
 +<code>
 +pip3 install .
 +</code>
 +
 +Vengono verificate le eventuali dipendenze; se non sono soddisfatte il sistema PIP cercherà di risolverle automaticamente eventualmente scaricando il necessario dal repository **[[https://pypi.org/|PyPI]]**.
 +
 +==== Elenco delle librerie installate ====
 +
 +Purtroppo il comando **pip list** fa vedere le librerie aggiuntive installate **sia dal sistema Pip** che dal sistema **gestione pacchetti** Debian.
 +
 +<code>
 +pip3 list
 +</code>
 +
 +==== Rimozione di una libreria ====
 +
 +Se una libreria è stata installato con il sistema Pip, è possibile rimuoverla con il comando seguente:
 +
 +<code>
 +pip3 uninstall openpyxl
 +</code>
 +
 +==== Installazione di una particolare versione ====
 +
 +Se si desidera scaricare e installare una specifica versione di un pacchetto, si può usare la sintassi:
 +
 +<code>
 +pip install Adafruit-PureIO==0.2.1
 +</code>
 +
 +Attenzione all'**installazione sovrapposta di versioni differenti** della stessa libreria! Verificare sempre con **pip list** quale risulta essere la versione in uso e controllare nella directory **/usr/local/lib/python2.7/dist-packages/** cosa risulta installato. In generale dovrebbe essre utilizzata sempre la versione più recente.
 +
 +Per disinstallare installazioni multiple della stessa libreria può essere necessario eseguire più volte il comando **pip uninstall %%<package>%%**. Almeno con la versione **1.5.6** di pip (Debian 8 Jessie), sembra che non sia possibile disinstallare una versione specifica di una libreria.
 +
 +
 +===== Come vedere le dipendenze =====
 +
 +Per vedere le dipendenze di un pacchetto installato dal repository pip, si può usare **pipdeptree** (in Debian 10 Buster basta installare il pacchetto **python3-pipdeptree**):
 +
 +<code>
 +pipdeptree -p matrix-nio
 +</code>
doc/appunti/prog/python_pip.1571818035.txt.gz · Last modified: 2019/10/23 08:07 by niccolo