Outils pour utilisateurs

Outils du site


cours:informatique:dev:python:environnement_python:140_versioning_paquets

Notes et transcriptions du cours “Mettez en place votre environnement Python” disponible sur la plateforme Openclassrooms.

Utilisez le système de versioning de paquets

Pourquoi gérons-nous les versions des paquets ?

Lorsque vous avez travaillé sur des documents texte, vous avez probablement dû nommer certains d’entre eux comme ceci : myfile.doc , myfilev2.doc , myfilev3.doc , pour savoir à quelle version ils correspondent. Vous avez peut-être également indiqué la date dans le nom du fichier : myfile22062020.doc , myfile23062020.doc , !myfile27062020.doc .

Comme pour les documents texte, les paquets Python sont “versionnés” pour faciliter le suivi des versions de chacun. Les versions des paquets Python, toutefois, sont gérées selon un format strict :

major.minor.patch

Où major, minor et patch sont tous des nombres entiers.

Par exemple, une version du paquet requests peut-être 2.24.0 .

Chaque fois qu'un changement est apporté à un paquet Python, le numéro de version change (quelle que soit l'importance de la modification). Les modifications sont réparties en trois catégories différentes :

  • Si la modification consiste en une correction de bug rétrocompatible, le numéro de patch est incrémenté.
  • Si elle consiste en un élément de nouvelle fonctionnalité rétrocompatible, le numéro minor est incrémenté.
  • Si elle n'est pas rétrocompatible , alors major est incrémenté. Il s'agit alors d'un « breaking change », ce qui signifie que le changement de version peut “casser” un script Python donné, et il sera nécessaire de réécrire ce dernier en tenant compte des changements apparus dans la nouvelle version du paquet.

Dans ce cours, nous avons jusqu'à présent installé des paquets Python à l'aide de la commande pip install <package> , où <package> correspond au nom du paquet Python que vous voulez installer. Lorsque nous exécutons cette commande, la version du paquet n'est absolument pas mentionnée. Toutefois, vous pouvez remarquer que le résultat de la commande contient une référence à une version particulière du paquet. Par exemple, si j'exécute la commande suivante :

pip install requests
Collecting requests
...
Installing collected packages: requests
Successfully installed requests-2.24.0

Notez que ma commande pip install requests ne mentionne pas de version spécifique du paquet, mais que la dernière ligne du résultat, Successfully installed requests-2.24.0, montre que nous avons installé une version spécifique : 2.24.0. Cette version est, au moment de l'exécution, la dernière version disponible du paquet requests. Si vous ne spécifiez pas de version de paquet, pip installe donc le dernier paquet requests disponible.

Maîtrisez le système de versioning des paquets

Le moyen le plus simple pour installer une version de paquet Python consiste à utiliser l'opérateur == . Par exemple, pip install requests==2.1.0 installera, comme vous vous en doutez, la version 2.1.0 . Il existe toutefois plusieurs façons différentes de préciser la version du paquet. Par exemple :

# Installer la version la plus élevée disponible au-dessus de 2.2
# mais pas 3.0  ni les versions ultérieures.
pip install requests~=2.2
 
# Installer la version la plus élevée disponible au-dessus de 2.1.0
# mais pas la version 2.2.0  ni les versions ultérieures.
pip install requests~=2.1.0
 
# Installera la version la plus élevée disponible au-dessus de 2.5.0
pip install requests>2.5.0
 
# Installera la version la plus élevée disponible supérieure à 2.4.0
# mais inférieure à 2.6.0  .
pip install "requests>2.4.0,<2.6.0"

Notez que dans le dernier exemple, puisque nous utilisons une syntaxe plus compliquée, nous encadrons le nom du paquet et nos exigences de versions avec des guillemets.

Testons ensemble quelques-unes de ces commandes. Chaque fois que nous installerons le paquet requests, nous le désinstallerons à l'aide de la commande pip uninstall <package>.

# Désinstaller requests
pip uninstall requests
 
# Installer une version 2.2+ 
pip install requests~=2.2
 
 
pip uninstall requests

Exercice

Votre responsable a effectué des analyses à l'aide de Python. Il a écrit un script qui utilise deux paquets Python : matplotlib version 3.2.2 et numpy version 1.19.0.

Télécharger le script : exo2_script.py

exo2_script.py
import numpy as np
import matplotlib.pyplot as plt
 
 
x = np.random.rand(100)
y = np.random.rand(100)
plt.scatter(x, y)
plt.title('Scatter Diagram')
plt.show()

Puis installez les deux versions spécifiques de paquets et exécutez le script

En résumé

  • Les paquets Python sont versionnés pour faciliter le suivi des versions de chaque code.
  • Les paquets Python reçoivent un nouveau numéro de version chaque fois qu'une modification leur est apportée.
  • Vous pouvez utiliser pip pour installer la version souhaitée d'un paquet Python.

◁ Précédent | ⌂ Retour au sommaire | Suivant

cours/informatique/dev/python/environnement_python/140_versioning_paquets.txt · Dernière modification : 2023/09/24 13:14 de yoann