Python pip

In questo tutorial impareremo come usare pip per installare e gestire i pacchetti Python.

Cos'è il pip?

pipè il gestore di pacchetti standard per Python. Possiamo usare pipper installare pacchetti aggiuntivi che non sono disponibili nella libreria standard di Python. Per esempio,

 pip install numpy 

Se avessimo installato pipsul nostro sistema, questo comando avrebbe installato la numpylibreria.

Come installare pip?

pipè preinstallato sulle versioni Python 3.4 o precedenti. Possiamo verificare se pipè installato utilizzando il seguente comando nella console:

 pip --version 

Se pipè già disponibile nel sistema, pipviene visualizzata la rispettiva versione, come:

 pip 19.3.1 da C: Python37 lib site-packages pip (python 3.7) 

Se stiamo usando una versione precedente di Python o non l'abbiamo pipinstallata per qualche altro motivo, segui i passaggi descritti in questo link: installazione pip

Utilizzando pip

pipè un programma a riga di comando. Dopo la sua installazione, pipviene aggiunto un comando che può essere utilizzato con il prompt dei comandi.

La sintassi di base di pip è:

 pip 

Installazione di pacchetti con pip

Oltre alla libreria Python standard, la comunità Python contribuisce a un ampio numero di pacchetti su misura per vari framework di sviluppo, strumenti e librerie.

La maggior parte di questi pacchetti è ufficialmente ospitata e pubblicata nel Python Package Index (PyPI). pipci permette di scaricare e installare questi pacchetti.

Installazione del pacchetto di base

Il installcomando utilizzato per installare i pacchetti utilizzando pip. Facciamo un esempio:

Supponiamo di voler installare requestsuna popolare libreria HTTP per Python. Possiamo farlo con l'aiuto del seguente comando.

 pip install requests 

Produzione

Raccolta delle richieste utilizzando https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl.2 Raccolta di file https://chardet = 3.0 .pythonhosted.org / packages / bc / a9 / 01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8 / chardet-3.0.4-py2.py3-none-any.whl Raccolta di urllib3! = 1.25.0,! = 1.21.1 //files.pythonhosted.org/packages/b4/40/a9837291310ee1ccc242ceb6ebfd9eb21539649f193a7c8c86ba15b98539/urllib3-1.25.7-py2.py3-none-any.whl Collecting idna = 2.5 Usando cachedhostfiles.org https://hostedfiles.org /2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl Raccolta certifi> = 2017.4.17 Download https: //files.pythonhosted.org / packages / b9 / 63 / df50cac98ea0d5b006c55a399c3bf1db9da7b5a24de7890bc9cfd5dd9e99 / certifi-2019.11.28-py2.py3-none-any.whl (156kB) Installazione dei pacchetti raccolti: chardet, urllifi3, id. 3.0.4 idna-2.8 richieste-2.22.0 urllib3-1.25.7

Qui, possiamo vedere che pipè stato utilizzato con il installcomando seguito dal nome del pacchetto che vogliamo installare ( requests).

Tutte le altre dipendenze piace chardet, urllib3e certifinecessaria per questo pacchetto sono anche installati da pip.

Specifica della versione del pacchetto

Quando pip installviene utilizzato nella sua forma minima, pipscarica la versione più recente del pacchetto.

A volte, solo una versione specifica è compatibile con altri programmi. Quindi, possiamo definire la versione del pacchetto nel modo seguente:

 richieste di installazione pip == 2.21.0 

Qui abbiamo installato la versione 2.11.0 della requestslibreria.

Elenco dei pacchetti installati con pip

Il pip listcomando può essere utilizzato per elencare tutti i pacchetti disponibili nell'ambiente Python corrente.

 pip list 

Produzione

 Versione pacchetto ---------- ---------- certifi 2019.11.28 chardet 3.0.4 idna 2.8 pip 19.3.1 richieste 2.22.0 setuptools 45.0.0 urllib3 1.25.7 wheel 0.33 .6 

Informazioni sul pacchetto con pip show

Il pip showcomando visualizza le informazioni su uno o più pacchetti installati. Diamo un'occhiata a un esempio:

 pip show requests 

Produzione

Nome: richieste Versione: 2.22.0 Riepilogo: Python HTTP for Humans. Pagina iniziale: http://python-requests.org Autore: Kenneth Reitz Email autore: [email protected] Licenza: Apache 2.0 Posizione: c: users dell desktop venv lib site-packages Richiede: certifi, chardet, urllib3, idna Richiesto da:

Qui, il showcomando mostra le informazioni sulla requestslibreria. Si noti la Richiede e Required-by colonna nell'output sopra.

La colonna Richiede mostra le dipendenze richieste dalla requestslibreria. Inoltre, la colonna Richiesto da mostra i pacchetti che richiedono requests.

Disinstallazione di un pacchetto con pip

Possiamo disinstallare un pacchetto utilizzando pipcon il pip uninstallcomando.

Supponiamo di voler rimuovere la requestslibreria dal nostro attuale ambiente Python. Possiamo farlo nel modo seguente:

 pip uninstall requests 

Produzione

Disinstallazione di requests-2.22.0: rimuoverebbe: C: Python37 lib site-packages requests-2.22.0.dist-info * C: Python37 lib site-packages requests * Procedi (y / n)? y Richieste disinstallate con successo-2.22.0

Come possiamo vedere, il requestspacchetto viene rimosso dopo il prompt finale.

Note: Even though the specified package is removed, the packages that were installed as dependencies are not removed. In this case, the dependencies (chardet, urllib3, and certifi) of the requests library aren't uninstalled.

If we need to remove the dependencies of a package as well, we can use the pip show command to view installed packages and remove them manually.

Using Requirement Files

A file containing all the package names can also be used to install Python packages in batches.

Let's take a look at an example:

Suppose we have a file requirements.txt which has the following entries:

 numpy Pillow pygame 

We can install all these packages and their dependencies by using a single command in pip.

 pip install -r requirements.txt 

Output

 Collecting numpy Using cached https://files.pythonhosted.org/packages/a9/38/f6d6d8635d496d6b4ed5d8ca4b9f193d0edc59999c3a63779cbc38aa650f/numpy-1.18.1-cp37-cp37m-win_amd64.whl Collecting Pillow Using cached https://files.pythonhosted.org/packages/88/6b/66f502b5ea615f69433ae1e23ec786b2cdadbe41a5cfb1e1fabb4f9c6ce9/Pillow-7.0.0-cp37-cp37m-win_amd64.whl Collecting pygame Using cached https://files.pythonhosted.org/packages/ed/56/b63ab3724acff69f4080e54c4bc5f55d1fbdeeb19b92b70acf45e88a5908/pygame-1.9.6-cp37-cp37m-win_amd64.whl Installing collected packages: numpy, Pillow, pygame Successfully installed Pillow-7.0.0 numpy-1.18.1 pygame-1.9.6 

Here, we have used the same install command with pip.

However, the additional argument -r specifies pip that we are passing a requirements file rather than a package name.

Creating Requirements File

As an alternative to manually creating the requirements file, pip offers the freeze command. Let's look at how to use this command.

Suppose our current Python environment has the following packages. It can be displayed using pip list.

 Package Version ---------- ------- numpy 1.17.0 Pillow 6.1.0 pip 19.3.1 pygame 1.9.6 setuptools 45.0.0 wheel 0.33.6 

The packages that don't come preinstalled will Python are listed using the freeze command.

 pip freeze 

Output

 numpy==1.17.0 Pillow==6.1.0 pygame==1.9.6 

The pip freeze command displays the packages and their version in the format of the requirements file.

So this output can be redirected to create a requirements file using the following command:

 pip freeze> requirements.txt 

A new requirements.txt file is created in the working directory. It can later be used in other Python environments to install specific versions of packages.

Search packages in pip

The search command is used to search for packages in the command prompt. Let's look at an example:

 pip search pygame 

Output

 pygame-anisprite (1.0.0) - Animated sprites for PyGame! pygame-ai (0.1.2) - Videogame AI package for PyGame pygame-engine (0.0.6) - Simple pygame game engine. pygame-assets (0.1) - Assets manager for Pygame apps pygame-gui (0.4.2) - A GUI module for pygame 2 pygame-spritesheet (0.2.0) - Python pygame extension that provides SpriteSheet class. pygame-minesweeper (1.0) - Minesweeper game implemented in python using pygame pygame-menu (2.1.0) - A menu for pygame, simple, lightweight and easy to use pygame-plot (0.1) - Quick visualization of data using pygame with a matplotlib style pygame (1.9.6) - Python Game Development… 

Here, we have searched for a library called pygame. All other packages that match the keyword are displayed. This command is helpful for finding related packages.

Per saperne di più pip, visita: Python pip (documentazione ufficiale)

Articoli interessanti...