Gestion des versions et des paquets en Python 1/4
Si vous avez programmé en Python depuis quelques temps, vous êtes sans doute rendu compte que la gestion des paquets de Python est assez difficile.Le langage de programmation en lui-même est très facile mais la gestion des paquets est assez technique et il y a plusieurs raisons à cela.Qui ne s’est jamais heurté à un paquet qui manque ou à une version de Python qui ne correspond pas au paquet et vice versa ?Nous allons essayer, à travers de ces quelques articles, de nous renseigner un peu plus sur le fonctionnement des paquets pitons et ainsi d’être plus avertis sur les difficultés rencontrées.
Si vous êtes dans l’intelligence artificielle, vous y avez utilisé beaucoup de pitons, notamment les bibliothèques pour CUDA pour la carte graphique, qui sont importantes. Un traitement par votre CPU classique prend 10 à 20 fois plus de temps qu’une carte graphique. Donc vous avez intérêt à savoir maîtriser l’installation de librairies pour votre carte graphique.
Le modèle mental indispensable
Les difficultés viennent souvent du fait que l’on confond plusieurs éléments indépendants :
- la version de Python ;
- l’interpréteur Python réellement exécuté ;
- l’environnement Python actif ;
- l’outil d’installation des paquets ;
- les versions des bibliothèques ;
- les formats de distribution comme les wheels ;
- le système d’exploitation et l’architecture du processeur.
Lorsqu’on exécute :
pip install pandas
Il faut tenir compte d’autres facteurs comme quelle est la version de pip exécutée, quel interpréteur Python le contient.Dans quel environnement s’installe-t-il et est-ce qu’il existe un fichier binaire compatible avec mon système ?
C’est un petit peu la fonction du succès de Python qui existe dans de nombreuses définitions et ça explique pourquoi c’est assez difficile parfois mais pas tout le temps de bien gérer ses librairies.
Une installation Python n’est pas un simple exécutable
Qu’est-ce qu’une version de Python ?
Une installation Python contient notamment :
- un interpréteur ;
- la bibliothèque standard ;
- des fichiers de configuration ;
- un répertoire destiné aux paquets externes ;
- éventuellement
pip; - parfois des bibliothèques natives ;
- des en-têtes C pour compiler des extensions.
L’exécutable peut porter différents noms :
python python3 python3.11 python3.12 python.exe
Sous Windows, on peut également disposer du lanceur Python :
py
Le lanceur py est particulièrement utile lorsque plusieurs versions sont installées.
Exemples :
py --list py -3.11 --version py -3.12 --version py -3.11 script.py
Une version Python est constituée de l’interpréteur, de la bibliothèque standard et de ses fichiers associés.
Version majeure, mineure et corrective
Dans :
Python 3.12.7
on distingue :
3 version majeure 12 version mineure 7 version corrective
Les incompatibilités de paquets concernent principalement la version mineure.
Par exemple :
Python 3.10 Python 3.11 Python 3.12 Python 3.13
ne doivent pas être considérés comme quatre mises à jour parfaitement interchangeables.
Une bibliothèque peut déclarer :
Requires-Python >=3.10,<3.13
Elle acceptera Python 3.10, 3.11 et 3.12, mais refusera Python 3.13.
À l’inverse, les versions correctives sont normalement compatibles entre elles :
3.12.1 3.12.7 3.12.10
Un environnement virtuel créé avec Python 3.12.1 reste généralement utilisable avec les correctifs de la branche 3.12, même s’il est souvent préférable de le recréer après un changement important de l’installation système.
