Tutoriel Python : installer et utiliser le package PIP

Table des matières :

  1. Introduction
  2. Commencer avec pip
  3. Installer les packages avec pip
  4. Trouver des packages avec pip
  5. Désinstaller les packages avec pip
  6. Alternatives au pip
  7. Exercices
  8. Correction des exercices
  9. Conclusion

1. Introduction :

Python comprend un puissant système de packaging pour gérer le module les dépendances de vos programmes. Vous l'avez probablement utilisé pour installer des packages tiers avec la commande du gestionnaire de packages pip.

Un aspect déroutant de l'installation de paquets avec pip est qu'il essaie de s'installer dans votre environnement Python global par défaut.

Bien sûr, cela rend le tout nouveau paquet que vous installez disponible dans le monde entier par vous-même, ce qui est très pratique. Mais cela se transforme aussi rapidement en une commande cauchemar si vous travaillez sur plusieurs projets qui nécessitent des versions du même paquet.

Par exemple, que faire si l'un de vos projets a besoin de la version 1.3 d'une bibliothèque alors qu'un autre projet a besoin de la version 1.4 de la même bibliothèque ?

Vous pouvez aussi avoir différents programmes qui ont besoin de différentes versions de Python lui-même. Par exemple, certains programmes peuvent encore fonctionner en Python 2 alors que la plupart de vos nouveaux développements sont réalisés en Python 3.

Ou, si l'un de vos projets nécessite Python 3.3, alors que tout le reste fonctionne en Python 3.6 ?

2. Commencer avec pip:

Alors, que signifie le package pip?

Pip est le manager de package pour Python (python installer package). Cela signifie que pip un moyen d'installer et de gérer des packages et des dépendances supplémentaires qui ne sont pas encore distribués dans le cadre de la version standard du package.

pip package est intégré dans l’installation du Python depuis les versions 3.4 pour Python3 et les versions 2.7.9 pour Python2, et utilisé dans nombreux projets du python.

Donc on peut  vérifier que pip est disponible ou non en exécutant la commande suivante :

Exemple 1 :

Syntaxe:

pip --version

Résultat de l’exécution :

la sortie permet d’afficher la version de pip dans votre machine, ainsi que l'emplacement de votre version du Python. Si vous utilisez une ancienne version de Python qui n'inclut pas pip, vous pouvez l'installer en suivant les instructions pour votre système dans la documentation d'installation de pip.

Lien : https://docs.python.org/fr/3.6/installing/index.html

3. Installer les packages avec pip:

Python est défini comme un langage avec pile intégrée. Cela signifie que la bibliothèque standard de Python comprend un ensemble étendu de packages et de modules pour aider les développeurs dans leurs scripts et applications.

En même temps, la communauté de python est très active, elle fournit toujours des ensembles plus importants des packages qui peuvent vous aider dans votre développement. Ces packages sont diffusés dans le Python Package Index, aussi connu sous le nom de PyPI.

L'utilisation la plus commune de pip est l'installation à partir de PyPI en utilisant un spécificateur sur les exigences.

Exemple 2 :

Le code suivant retourne le contenu d'une page web en utilisant les packages standard intégrés dans Python:

Syntaxe:

# IN using-http.py
import cgi
import http.client
our_server= 'www.yahoo.fr'
Url_ = '/'
Connexion = http.client.HTTPSConnection(our_server)
Connexion.request('GET', Url_)
Response_ = Connexion.getresponse()
Content_Type1 = Response.headers.get('My Content-Type')
_,Params1 = cgi.parse_header(Content_Type1)
Encoding_ = Params1.get('My charset')
Data_ = Response.read()
Text_ = Data_.decode(encoding_)
print('Response returned: {Response_.status} ({Response_.reason})')
print('This is body:')
print(Text_)

Ce script importe les modules cgi et http.client, qui sont tous les deux inclus dans la classe standard de la bibliothèque Python. Vous définissez un objet HTTPSConnection qui spécifie le serveur (our_server) et vous appelez ensuite ses fonctions .request() et .getresponse() pour recevoir une réponse à partir le serveur.

À partir de la réponse/(Response), vous pouvez obtenir l'en-tête Content-Type et effectuer l'analyse de ce contenu en utilisant le package cgi.parse_header() qui retourne un tuple avec une valeur de base et un répertoire de paramètres. Par exemple, la ligne d'en-tête Content-Type peut comporter une valeur telle que texte/code html ;

Le tuple contient la valeur text/ code  html comme élément principal, et le deuxième élément est un répertoire sous la formule {'charset' : 'ISO-8859-1'}. Comme vous vous souciez uniquement du paramètre "charset", vous pouvez négliger le début du tuple en insérant un trait de soulignement : _, Params = cgi.parse_header(Content_Type).

Résultat de l'execution :

Une fois que vous avez le codage de la page, vous pouvez lire la réponse et la décoder en texte.

 ... Sortie supplémentaire omise

a) Installation du package de base :

La première étape consiste à installer le package des requêtes dans votre environnement. Vous pouvez vous renseigner sur les commandes supportées par pip :

Syntaxe:

pip help

Résultat de l’exécution :

Comme vous pouvez le voir, pip fournit une commande d'installation pour installer des packages. Vous pouvez l'exécuter pour installer le package des requêtes :

Syntaxe:

pip install requests

Ce code permet d’Installer la bibliothèque requests.

Vous utilisez pip avec une commande install suivie du nom du package que vous voulez installer. pip recherche le package dans PyPI.

Syntaxe:

python -m pip install --upgrade pip

Résultat de l’exécution :

Nous utilisons python -m pour effectuer la mise à jour de pip. Le -m indique à Python d'exécuter le module comme un exécutable. Ceci est nécessaire car pour que vous puissez mettre à jour pip, l'ancienne version doit être désinstallée avant d'installer la nouvelle version, et la supprimer pendant que l'outil est en cours d'exécution pour ne pas  provoquer des erreurs.

b) Utilisation des fichiers supplémentaires:

La commande pip install est toujours basée sur la dernière version disponible d'un package (module), en revanche parfois vous souhaitez installer une version précise compatible avec votre code.

Si vous souhaitez créer une configuration des dépendances spécifiques et des versions du package que vous avez utilisées pour le développement et les tests de votre application, afin qu'il n'y ait pas de surprises lors de l'utilisation de l'application en phase de production, vous devez installer des fichiers/modules complémentaires sur votre machine.

Les fichiers d'exigences vous donnent la possibilité de spécifier précisément les packages/modules et les versions qui doivent être installés. L'exécution de la commande pip help comporte une requête freeze qui produit les packages installés dans le format des besoins.

Syntaxe:

pip freeze > requirements.txt
cat requirements.txt

Résultat de l’exécution :

La commande "freeze" permet de décharger tous les packages et leurs versions sur la sortie habituelle, de manière à vous permettre de rediriger la sortie vers un fichier_requis qui peut être utilisé pour installer les configurations exactes dans un autre système.

c) Les dépendances entre production et développement :

Tous les packages/modules installés lors du développement de vos applications, programmes ne seront pas des fonctionnalités dépendantes de l'application. De très nombreux packages produits sur PyPI sont des moyens de développement ou des modules que vous allez utiliser pendant le développement de vos applications, programmes.

Le fait que vous voudrez probablement faire un test de votre application à unit, vous avez donc en général besoin d'un cadre de test pour unit. Le cadre de test universel le plus utilisé est pytest. Vous voulez le mettre en place dans votre système de développement, mais vous ne le voulez pas dans votre système de réalisation car il ne dépend pas de l'application.

Vous devez créer un autre fichier_ requis (requirements_dev.txt) pour énumérer les autres outils nécessaires à la mise en place dans un système de développement. 

4. Trouver des packages avec pip:

Pour devenir un utilisateur de python expérimenté, il y aura un ensemble de packages que vous apprendrez par cœur et que vous pourrez utiliser dans la plupart de vos applications.

Les requêtes et les modules Pytest sont de bons éléments pour devenir des outils utiles dans votre code  de Python.

Toutefois, il y aura des moments où vous devrez résoudre un problème différent et où vous voudrez chercher un autre outil ou une autre bibliothèque qui puisse vous aider. Comme vous pouvez le voir ci-dessus, pip help montre qu'il existe une commande de recherche qui recherche les paquets publiés dans PyPI.

Syntaxe:

pip help search

Résultat de l’exécution :

Par exemple, votre application doit accéder à un service qui fait appel à OAuth2 pour les autorisations. Heureusement, il existe une autre bibliothèque qui fonctionne avec des requêtes ou une interface semblable qui peut vous aider dans votre développement.

Syntaxe:

pip search requests oauth

Résultat de l’exécution :

 ... Sortie supplémentaire omise

Le terme de search donne une collection assez importante des packages. Certains d'entre eux semblent être spécifiques à un service ou à une technologie comme django-oauth. D'autres semblent prometteurs, tels que requests-oauth.

5. Désinstaller les packages avec pip:

De temps à autre, vous devrez enlever des package/modules. Soit vous avez une meilleure version de la bibliothèque pour la changer ou il s'agit d'un outil dont vous n'avez pas vraiment besoin. La suppression de paquets peut être un peu difficile.

Au moment où vous avez effectué l'installation des requêtes, pip a implémenté d'autres dépendances. Plus vous installez de package, plus il est probable que plusieurs packages dépendent de la même dépendance. C'est là où la commande show de pip devient intéressante.

Avant de retirer un package, vérifiez que vous avez bien exécuté la commande show pour ce package :

Syntaxe:

pip show requests

Résultat de l’exécution :

La commande show nous indique que les requêtes nécessitent urllib3, certifi, et chardet , idna. Vous devrez donc désinstaller ces deux éléments. Vous pouvez également voir que les requêtes ne sont requises par aucun autre package, il est donc sûr de les désinstaller.

Vous devez exécuter la commande show pour toutes les dépendances des requêtes afin de vous assurer qu'aucune autre bibliothèque n'en dépend. Une fois que vous avez compris l'ordre des dépendances des paquets que vous voulez désinstaller, vous pouvez les supprimer en utilisant la commande uninstall :

Syntaxe:

pip uninstall certifi
pip uninstall urllib3 -y
pip uninstall chardet -y
pip uninstall idna -y
pip uninstall requests -y

Résultat de l’exécution :

Vous pouvez préciser les packages que vous souhaitez désinstaller en un seul appel : pip uninstall -y ,urllib3 chardet ,idna ,requests.

Vous pouvez aussi désinstaller tous les packages de votre configuration en fournissant l'option -r . La commande demandera une confirmation pour chaque package individuel, mais vous pouvez la supprimer, si vous savez ce que vous faites, avec l'option -y :

Syntaxe:

pip uninstall -r requirements.txt -y

Résultat de l’exécution :

Il faut toujours vérifier les dépendances des packages que vous voulez supprimer. Vous voulez normalement retirer toutes ces dépendances, mais la suppression d'un package utilisé par d'autres utilisateurs provoquera une panne de votre application.

6. Alternatives au pip:

pip est un outil indispensable pour tous les utilisateurs de python, et est utilisé dans nombreuses applications et projets pour la maintenance des packages. Ce manuel vous a donné les bases, mais la communauté Python est très active pour fournir les meilleurs outils et modules aux développeurs. Ceux-ci comportent d'autres variantes de pip qui tentent de faciliter les choses et d'améliorer la maintenance des packages.

Dans cette section, vous découvrirez d'autres outils de gestion de paquets inclus dans Python.

a) Conda fait tout !

Conda est également un gestionnaire de paquets, de dépendances et d'environnement pour plusieurs langages de programmation, dont Python. En fait, son origine vient d'Anaconda, qui a été créé comme un ensemble de données de science pour Python.

Conda vous offre la garantie de pouvoir non seulement gérer les dépendances des packages, mais aussi de contrôler les espaces virtuels de vos applications, d'installer des versions adaptées de Python et de mettre votre application en production.

b) Pipenv :

Pipenv est un autre outil de gestion des paquets en Python. Il gagne de nombreux partisans dans la communauté Python car il rassemble l'environnement virtuel et la gestion des packages en un unique outil. Il répond aux difficultés les plus courantes que vous rencontrez lorsque vous gérez manuellement les dépendances via pip, telles que les versions de package, la diffusion des dépendances entre le développement et la production, et le verrouillage des versions pour la production.

c) Poetry :

Poetry est une autre variante du pip qui connaît une grande popularité. Comme Pipenv, il facilite la gestion des versions des packages et sépare les relations de développement et de production, et fonctionne en isolant ces relations dans un environnement virtuel.

7. Exercices :

Exercice 1 :

Utilisez la commande pip pour afficher l'emplacement du répertoire des scripts Python.

Exercice 2 :

Utilisez la commande  pip pour installer le package camelcase.

 Exercice 3 :

Utilisez la commande pip pour désinstaller le package camelcase.

 Exercice 4 :

Utilisez la commande list pour afficher la liste de tous les packages installés sur votre système .

8. Correction des exercices :

Exercice 1 :

Syntaxe:

pip --version

Résultat de l’exécution :

Exercice 2 :

Syntaxe:

pip install camelcase

Résultat de l’exécution :

Exercice 3:

Syntaxe:

pip uninstall camelCase

Résultat de l’exécution :

Exercice 4 :

Syntaxe:

pip list

Résultat de l’exécution :

... Sortie supplémentaire omise

9. Conclusion :

Vous avez vu que pip est le manager de package pour Python, utilisé dans nombreux projets pour manager les dépendances. Il est inclut dans votre installateur Python, ce qui en fait PIP est un outil nécessaire pour tous les utilisateurs de Python.

Python possède une vaste bibliothèque standard convenant au développement de toutes les applications, de sorte que la communauté Python offre encore un ensemble plus grand d'outils et de bibliothèques qui accélèrent le développement des applications en Python.

Article publié le 24 Octobre 2020par Babachekhe Mohamed