Introduction à Python
  • Back to Main Website
  • Home
  • Comprendre Et Installer Python
    • Comprendre Et Installer Python
    • Histoire du Langage
    • Exécution d’un Programme Python
    • Versions et Compilation de Python
    • Le PATH
    • Path.. et environnements virtuels!
    • Les IDEs
    • Les Notebooks

    • Quelques IDEs en Python
    • VsCode - L’IDE Flexible et Polyvalent
    • Spyder - Un IDE Orienté Science des Données
    • PyCharm - L’IDE orienté Python

    • Travaux Pratiques
    • TP Guidé - Installer plusieurs versions de python avec pyenv
    • TP - Construire son python depuis la source
  • Syntaxes et Concepts de Base
    • Syntaxes et Concepts de Base
    • Syntaxe et objets de Base Python
    • Fonctions et Modules
    • Introduction à la POO en Python

    • Travaux Pratiques
    • Exercices d’applications
    • Base de la POO: Exercice
  • Les Librairies Python
    • Les Librairies Python
    • Installer et importer des librairies en Python
    • Les DataFrames
    • Exemple sur pandas
    • Calcul Scientifique et Optimization
    • Machine Learning
    • Recupérer des données du net
    • Python - Aussi un language pour servir des données
    • Visualiser et présenter ces données avec Python

    • Travaux Pratiques
    • TP-3 Libraries
    • TP - Utiliser pandas
  • Bonne pratiques, Dangers, et Astuces
    • Bonne pratiques, Dangers, et Astuces
    • Mutabilité et Scope
    • Typage en Python
    • Asynchronie et Multiprocessing

    • Travaux Pratiques
    • Modern Portfolio Theory - Practical Work
    • Modern Portfolio Theory - Practical Work - Corrected version
    • TP Python for Finance: Introduction to Option Pricing
    • TP Python for Finance: Introduction to Option Pricing - Corrected Version
    • TP - Creer un outil de récupération de donnée
  • Concepts avancés
    • Concepts avancés
    • L’arbre Syntaxique Abstrait ou AST
    • Python Orienté Objet - Les Dunders
    • Python Orienté Objet - les Design Patterns

    • Travaux Pratiques
    • TP-5
  • Sujets de Projets possibles
    • Projets
    • Projets Introduction à Python - Millésime 2024
    • Projets Introduction à Python - Millésime 2025
  • Code source
  1. Path.. et environnements virtuels!
  • Comprendre Et Installer Python
  • Histoire du Langage
  • Exécution d’un Programme Python
  • Versions et Compilation de Python
  • Le PATH
  • Path.. et environnements virtuels!
  • Les IDEs
  • Les Notebooks
  • Quelques IDEs en Python
    • VsCode - L’IDE Flexible et Polyvalent
    • Spyder - Un IDE Orienté Science des Données
    • PyCharm - L’IDE orienté Python
  • Travaux Pratiques
    • TP Guidé - Installer plusieurs versions de python avec pyenv
    • TP - Construire son python depuis la source

On this page

  • Partie 1 : Pyenv et la Gestion de Versions Python
  • PYTHONPATH et Son Rôle dans la Configuration Python
  • Partie 4 : Poetry - Gestion Avancée des Dépendances et Packaging en Python
  • Partie 5 : Environnements Virtuels en Python et Exemple avec Docker

Path.. et environnements virtuels!

Cours
Introduction
Les outils pour gerer plusieurs versions de python facilement, et le concept d’environnements virtuels -
Author

Remi Genet

Published

2025-02-12

PATH et les Environnements Virtuels avec Pyenv

Pyenv est un outil populaire pour la gestion des versions de Python. Il permet aux développeurs d’installer et de basculer facilement entre plusieurs versions de Python sur un même système. Cette flexibilité est particulièrement utile dans des environnements de développement où différents projets nécessitent différentes versions de Python.

Partie 1 : Pyenv et la Gestion de Versions Python

Introduction à Pyenv

Pyenv est un outil populaire pour la gestion des versions de Python. Il permet aux développeurs d’installer et de basculer facilement entre plusieurs versions de Python sur un même système. Cette flexibilité est particulièrement utile dans des environnements de développement où différents projets nécessitent différentes versions de Python.

Fonctionnement de Pyenv

  1. Installation et Configuration :
    • L’installation de pyenv implique l’ajout d’un script d’initialisation dans le fichier de configuration du shell (comme .bashrc, .zshrc).
    • Ce script ajuste la variable PATH pour inclure un chemin vers les shims de pyenv.
  2. Les Shims de Pyenv :
    • Les shims sont des scripts intermédiaires qui interceptent les appels à Python et redirigent vers la version appropriée.
    • Lorsqu’un utilisateur exécute python, le shim de pyenv est appelé, qui détermine ensuite quelle version de Python doit être utilisée.
  3. Gestion des Versions Python :
    • Pyenv permet de définir une version globale de Python pour l’ensemble du système ou des versions locales pour des répertoires spécifiques.
    • Les versions de Python sont gérées en modifiant la variable PATH via les shims, permettant un basculement facile entre différentes versions.
  4. Avantages de Pyenv :
    • Flexibilité et facilité de basculement entre différentes versions de Python.
    • Gestion aisée des dépendances spécifiques aux versions pour des projets variés.
    • Solution idéale pour tester et développer des applications compatibles avec différentes versions de Python.

Interaction de Pyenv avec PATH

Pyenv modifie PATH pour prioriser ses shims, qui redirigent ensuite les appels à Python vers la version spécifique configurée. Cette manipulation de PATH est au cœur de la fonctionnalité de pyenv, permettant une gestion transparente de multiples versions de Python.

PYTHONPATH et Son Rôle dans la Configuration Python

Introduction à PYTHONPATH

PYTHONPATH est une variable d’environnement utilisée par Python pour déterminer quels répertoires le système doit inclure dans le front-end de son chemin de recherche de modules. C’est une extension de la variable sys.path, qui est une liste de chaînes de caractères définissant les chemins d’accès pour les modules Python.

Fonctionnement de PYTHONPATH

  1. Principes de Base :
    • Quand Python démarre, il initialise sys.path avec les emplacements par défaut pour les modules standard et les répertoires de site-packages.
    • PYTHONPATH permet d’ajouter des répertoires supplémentaires où Python recherchera des modules à importer.
  2. Utilisation de PYTHONPATH :
    • Les développeurs peuvent ajouter des chemins de répertoires personnalisés à PYTHONPATH pour rendre leurs modules ou packages personnalisés accessibles à travers tout le système.
    • Cela est utile quand les modules ne sont pas installés dans les répertoires standards.
  3. Modification de PYTHONPATH :
    • Sous Windows, PYTHONPATH peut être modifié via les variables d’environnement dans les propriétés système.
    • Sous Linux et MacOS, on peut modifier PYTHONPATH en ajoutant export PYTHONPATH=/chemin/de/votre/module:$PYTHONPATH dans les fichiers de configuration du shell comme .bashrc ou .bash_profile.
  4. Implications de PYTHONPATH :
    • Une bonne gestion de PYTHONPATH est essentielle pour s’assurer que les scripts Python accèdent aux bons modules et packages.
    • Un PYTHONPATH mal configuré peut entraîner des conflits de modules ou des erreurs d’importation.

Distinction entre PYTHONPATH et PATH

Bien que PATH et PYTHONPATH soient des variables d’environnement, elles servent des buts différents : - PATH est utilisé par le système d’exploitation pour localiser les fichiers exécutables. - PYTHONPATH est spécifique à Python et indique à l’interpréteur où chercher les modules pour les importations.

Gestionnaires de Bibliothèques et Environnements Virtuels: Pipenv et Poetry

Au-delà de la gestion des versions de Python, la gestion des bibliothèques et des dépendances est un autre aspect crucial du développement Python. Deux outils populaires dans ce domaine sont Pipenv et Poetry. Voici comment ils fonctionnent et interagissent avec la notion de PATH : ### Partie 3 : Pipenv - Gestion des Bibliothèques et Environnements Virtuels

Introduction à Pipenv

Pipenv est un outil de gestion pour les projets Python qui combine la gestion des packages avec la gestion des environnements virtuels. Il est conçu pour offrir un workflow simplifié pour le développement de projets Python.

Fonctionnement de Pipenv

  1. Gestion des Dépendances :
    • Pipenv utilise le fichier Pipfile pour déclarer les dépendances de projet, remplaçant les traditionnels requirements.txt.
    • Pipfile.lock est généré pour verrouiller les versions exactes des dépendances, assurant ainsi la reproductibilité des environnements.
  2. Création d’Environnements Virtuels :
    • Lorsqu’un projet est initié avec Pipenv (par pipenv install), il crée automatiquement un environnement virtuel dédié à ce projet.
    • Cela isole les dépendances du projet des autres projets et du système global.
  3. Activation des Environnements Virtuels :
    • Pour activer l’environnement virtuel de Pipenv, utilisez la commande pipenv shell.
    • Cette action ajuste temporairement la variable PATH pour que les commandes python et pip fassent référence à l’environnement virtuel spécifique du projet.
  4. Avantages de Pipenv :
    • Simplification de la gestion des dépendances et des environnements virtuels.
    • Amélioration de la reproductibilité et de la cohérence entre les environnements de développement et de production.
    • Facilité d’utilisation et intégration avec des outils de développement modernes.

Interaction de Pipenv avec PATH

Lorsqu’un environnement virtuel est activé avec Pipenv, PATH est modifié pour que toutes les commandes Python soient redirigées vers l’interpréteur et les bibliothèques de l’environnement virtuel spécifique du projet. Cela garantit que les bonnes versions des packages sont utilisées et que les dépendances de projet sont isolées des autres projets ou de l’environnement global.

Partie 4 : Poetry - Gestion Avancée des Dépendances et Packaging en Python

Introduction à Poetry

Poetry est un outil de gestion des dépendances et de packaging pour les projets Python. Il fournit un système de gestion tout-en-un pour les bibliothèques et les applications, en mettant l’accent sur la facilité d’utilisation, la reproductibilité et la gestion cohérente des dépendances.

Fonctionnalités Clés de Poetry

  1. Gestion des Dépendances :
    • Poetry utilise le fichier pyproject.toml pour déclarer les dépendances et les métadonnées de projet, adhérant ainsi au standard PEP 518.
    • Il gère les dépendances de manière plus intuitive et reproductible, en résolvant automatiquement les conflits de dépendances et en verrouillant les versions avec un fichier poetry.lock.
  2. Packaging et Publication :
    • Poetry facilite le packaging et la publication de bibliothèques sur des dépôts comme PyPI, en intégrant les outils nécessaires dans un seul workflow.
    • Il permet de construire, empaqueter et publier des projets avec des commandes simples et cohérentes.
  3. Création et Gestion des Environnements Virtuels :
    • À l’instar de Pipenv, Poetry crée automatiquement des environnements virtuels pour isoler les dépendances de chaque projet.
    • Lorsqu’un projet est activé, Poetry ajuste le PATH pour utiliser l’interpréteur et les outils de cet environnement.

Interaction de Poetry avec PATH

Lorsqu’un environnement virtuel est activé avec Poetry, la variable PATH est modifiée pour diriger les commandes Python vers l’interpréteur spécifique de l’environnement virtuel du projet. Cela permet d’assurer que les dépendances et versions correctes sont utilisées pour chaque projet.

Avantages de Poetry

  • Simplicité et Cohérence : Poetry fournit un workflow clair et cohérent pour la gestion des dépendances et du packaging, simplifiant le processus de développement.
  • Reproductibilité : Les fichiers pyproject.toml et poetry.lock garantissent que les mêmes versions des dépendances sont installées dans tous les environnements.
  • Intégration Facile : Poetry s’intègre facilement dans les systèmes de CI/CD et les flux de travail de développement existants.

Partie 5 : Environnements Virtuels en Python et Exemple avec Docker

A. Qu’est-ce qu’un Environnement Virtuel en Python ?

  1. Définition :
    • Un environnement virtuel en Python est un espace isolé au sein du système qui permet d’exécuter des applications Python dans un contexte séparé, avec ses propres dépendances et interpréteur.
  2. Objectif :
    • L’objectif principal est de séparer les dépendances requises pour différents projets, évitant ainsi les conflits entre différentes versions des bibliothèques.
  3. Comment ils Fonctionnent :
    • Les environnements virtuels modifient la variable PATH (et d’autres variables d’environnement) pour s’assurer que les commandes Python et pip pointent vers les versions spécifiques à cet environnement.
  4. Outils pour la Création d’Environnements Virtuels :
    • venv (intégré dans Python 3.3 et versions ultérieures) et virtualenv sont des outils populaires pour créer des environnements virtuels.

B. Exemple avec Docker

Pour comprendre les environnements virtuels dans un cadre plus large, considérons Docker, une plateforme de conteneurisation qui permet de créer des environnements isolés, appelés conteneurs.

  1. Docker et Isolation :
    • Docker crée des conteneurs qui sont isolés du système hôte et entre eux. Chaque conteneur peut avoir sa propre configuration, ses propres dépendances et son propre système d’exploitation léger.
  2. Comparaison avec les Environnements Virtuels Python :
    • Tandis que les environnements virtuels Python isolent uniquement les dépendances Python, Docker isole l’ensemble du système, y compris le système d’exploitation, les bibliothèques système, etc.
    • Docker offre un degré plus élevé d’isolation et de reproductibilité, ce qui est crucial dans les déploiements de production et les systèmes de CI/CD.
  3. Utilisation de Docker avec Python :
    • Vous pouvez créer un conteneur Docker pour un projet Python, où vous installez toutes les dépendances requises, y compris l’interpréteur Python.
    • Cela garantit que le projet s’exécute dans un environnement contrôlé et cohérent, indépendamment des configurations système de l’hôte.

Conclusion sur les Environnements Virtuels

Les environnements virtuels, qu’ils soient spécifiques à Python ou sous forme de conteneurs Docker, sont essentiels pour maintenir la cohérence des projets, éviter les conflits de dépendances et assurer la reproductibilité des environnements de développement et de production. Ils représentent une pratique standard dans le développement moderne, garantissant que les applications s’exécutent de manière fiable et prévisible dans différents environnements.

Back to top
Le PATH
Les IDEs

Introduction à Python, Rémi Genet.
Licence
Code source disponible sur Github

 

Site construit avec et Quarto
Inspiration pour la mise en forme du site ici
Code source disponible sur GitHub