Ce tutoriel complet vous guide à travers l'utilisation de la fonction platform.python_version(), une méthode essentielle pour gérer les versions de Python dans vos projets. Vous apprendrez à récupérer, analyser et utiliser les informations de version pour créer des applications plus robustes et portables.
1. Introduction au module platform et python_version()
Le module platform fait partie de la bibliothèque standard de Python et fournit des informations détaillées sur l'environnement d'exécution. La fonction platform.python_version() est spécifiquement conçue pour retourner la version de l'interpréteur Python sous forme de chaîne de caractères structurée.
Cette fonction est particulièrement utile pour :
- Vérifier la compatibilité des dépendances
- Adapter le comportement du code selon la version
- Générer des rapports de diagnostic
- Forcer l'utilisation d'une version minimale de Python
2. Usage principal la méthode python_version()
2.1 Importation et appel de base
Pour utiliser la fonction, vous devez d'abord importer le module platform. L'appel de base est simple et direct.
|
1 2 3 4 5 6 7 8 9 10 11 |
# Importation du module platform import platform # Appel simple de la fonction python_version() version = platform.python_version() # Affichage du résultat print(f"Version de Python détectée : {version}") # Output typique : # Version de Python détectée : 3.11.4 |
2.2 Vérification de version minimale
Vous pouvez utiliser python_version() pour vérifier si l'environnement exécute une version suffisamment récente de Python.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import platform # Récupération de la version actuelle current_version = platform.python_version() required_version = "3.8.0" # Comparaison des versions (méthode basique) print(f"Version actuelle : {current_version}") print(f"Version requise : {required_version}") if current_version >= required_version: print("La version de Python est compatible") else: print("Mise à jour de Python nécessaire") # Output (pour Python 3.11.4) : # Version actuelle : 3.11.4 # Version requise : 3.8.0 # La version de Python est compatible |
3. Techniques avancées et fonctions alternatives
3.1 Utilisation avec python_version_tuple()
Pour des comparaisons plus précises, platform.python_version_tuple() retourne les composants de version séparément dans un tuple.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import platform # Récupération sous forme de tuple version_tuple = platform.python_version_tuple() print(f"Version complète : {platform.python_version()}") print(f"Composants de version : {version_tuple}") print(f"Version majeure : {version_tuple[0]}") print(f"Version mineure : {version_tuple[1]}") print(f"Version de correctif : {version_tuple[2]}") # Output exemple : # Version complète : 3.11.4 # Composants de version : ('3', '11', '4') # Version majeure : 3 # Version mineure : 11 # Version de correctif : 4 |
3.2 Comparaison robuste avec packaging.version
Pour des comparaisons de versions complexes, il est recommandé d'utiliser le module packaging.version.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
from packaging import version import platform # Récupération de la version current = platform.python_version() # Création d'objets Version pour comparaison v_current = version.parse(current) v_min = version.parse("3.8.0") v_max = version.parse("3.12.0") print(f"Version actuelle : {current}") print(f"Version minimale : 3.8.0") print(f"Version maximale : 3.12.0") # Tests de comparaison print(f"\nVérifications :") print(f"Version ≥ 3.8.0 : {v_current >= v_min}") print(f"Version ≤ 3.12.0 : {v_current <= v_max}") print(f"Dans l'intervalle : {v_min <= v_current <= v_max}") # Output (pour Python 3.11.4) : # Version actuelle : 3.11.4 # Version minimale : 3.8.0 # Version maximale : 3.12.0 # # Vérifications : # Version ≥ 3.8.0 : True # Version ≤ 3.12.0 : True # Dans l'intervalle : True |
4. Cas pratiques & meilleur usage
4.1 Validation au démarrage de l'application
Un pattern courant consiste à valider la version de Python au tout début de l'exécution du script.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
import platform import sys def check_python_version(min_version="3.8.0", max_version="3.12.0"): """Vérifie que la version de Python est dans l'intervalle spécifié.""" current = platform.python_version() from packaging import version v_current = version.parse(current) v_min = version.parse(min_version) v_max = version.parse(max_version) if not (v_min <= v_current <= v_max): print(f"ERREUR : Version Python incompatible") print(f"Version actuelle : {current}") print(f"Versions supportées : {min_version} à {max_version}") sys.exit(1) print(f"Version Python {current} compatible") # Validation au démarrage check_python_version() # Output (si version compatible) : # Version Python 3.11.4 compatible |
4.2 Génération de rapport système
Combinez python_version() avec d'autres fonctions du module platform pour créer un rapport système complet.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
import platform import datetime def generate_system_report(): """Génère un rapport détaillé du système.""" report = [] report.append("=" * 50) report.append("RAPPORT SYSTÈME") report.append("=" * 50) # Informations Python report.append(f"\n=== INFORMATIONS PYTHON ===") report.append(f"Version Python : {platform.python_version()}") report.append(f"Implémentation : {platform.python_implementation()}") report.append(f"Compilateur : {platform.python_compiler()}") # Informations système report.append(f"\n=== INFORMATIONS SYSTÈME ===") report.append(f"Système : {platform.system()} {platform.release()}") report.append(f"Architecture : {platform.architecture()[0]}") report.append(f"Processeur : {platform.processor()}") # Métadonnées report.append(f"\n=== MÉTADONNÉES ===") report.append(f"Généré le : {datetime.datetime.now()}") return "\n".join(report) # Génération et affichage du rapport print(generate_system_report()) # Output exemple : # ================================================== # RAPPORT SYSTÈME # ================================================== # # === INFORMATIONS PYTHON === # Version Python : 3.11.4 # Implémentation : CPython # Compilateur : GCC 11.3.0 # # === INFORMATIONS SYSTÈME === # Système : Linux 5.15.0 # Architecture : 64bit # Processeur : x86_64 # # === MÉTADONNÉES === # Généré le : 2024-01-15 10:30:00 |
4.3 Gestion conditionnelle de fonctionnalités
Adaptez le comportement de votre code selon la version de Python disponible.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
import platform from packaging import version # Détection de la version current = version.parse(platform.python_version()) # Exemple : utiliser l'opérateur walrus (:=) disponible à partir de Python 3.8 if current >= version.parse("3.8.0"): print("Version compatible avec l'opérateur walrus") # Exemple d'utilisation conditionnelle data = [1, 2, 3, 4, 5] if (n := len(data)) > 3: print(f"La liste a {n} éléments (n > 3)") else: print("Version antérieure à Python 3.8") print("L'opérateur walrus n'est pas disponible") # Exemple : gestion des types d'union (Python 3.10+) if current >= version.parse("3.10.0"): print("\nVersion compatible avec les types union syntaxe '|'") else: print("\nPour les types union, utilisez typing.Union") # Output (pour Python 3.11.4) : # Version compatible avec l'opérateur walrus # La liste a 5 éléments (n > 3) # # Version compatible avec les types union syntaxe '|' |
Younes Derfoufi
CRMEF OUJDA



