Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 18

Managing Project Environments with venv and Conda

Recommended resources

Bonjour ! Dans la leçon précédente, nous avons installé votre environnement de développement avec Anaconda et Jupyter, et nous avons eu un premier aperçu de pip pour la gestion des paquets. Nous avions conclu en mentionnant l'importance de travailler dans des espaces isolés pour chaque projet.

Cette leçon se penche précisément sur ce sujet : les environnements virtuels. Vous allez découvrir pourquoi il est crucial de ne pas installer tous vos outils dans un seul et même endroit "global". Nous apprendrons à créer et gérer des environnements de projet spécifiques à l'aide de deux outils populaires : venv, qui est la norme intégrée à Python, et conda, l'outil puissant fourni avec Anaconda. À la fin de cette leçon, vous saurez comment organiser vos projets de manière propre et professionnelle, une compétence fondamentale pour tout développeur.

Le problème : les conflits de dépendances

Imaginez que vous travaillez sur deux projets d'apprentissage automatique.

  • Projet A est un ancien projet qui nécessite pandas version 1.5.
  • Projet B est un nouveau projet qui utilise une fonctionnalité de pandas version 2.1.

Si vous installez vos paquets de manière globale, vous ne pouvez avoir qu'une seule version de pandas à la fois. Mettre à jour pour le Projet B risque de casser le Projet A, et vice-versa. C'est ce qu'on appelle un conflit de dépendances.

La solution est de créer un environnement virtuel pour chaque projet. Un environnement virtuel est un répertoire isolé qui contient sa propre version de l'interpréteur Python et son propre ensemble de bibliothèques (paquets). C'est comme avoir une boîte à outils distincte et sur mesure pour chaque projet.

L'image ci-dessous illustre parfaitement ce concept.

Chaque environnement virtuel est une boîte isolée. Il contient une version spécifique de Python et un ensemble de bibliothèques tierces avec leurs propres versions, évitant ainsi les conflits entre les projets.

Méthode 1 : venv, l'outil standard de Python

Depuis Python 3.3, un module appelé venv est inclus dans la bibliothèque standard. C'est l'outil de base, léger et recommandé pour créer des environnements virtuels. Il ne gère que les paquets Python via pip, que vous connaissez déjà.

Le processus est simple :

  1. Créer un répertoire pour l'environnement.
  2. L'"activer" pour commencer à travailler dedans.
  3. Installer les paquets nécessaires avec pip.
  4. Le "désactiver" lorsque vous avez terminé.

La vidéo suivante, de la chaîne Tech With Tim, est un excellent tutoriel pour les débutants qui explique et montre tout ce processus.

Python Virtual Environments - Full Tutorial for Beginners

Cette vidéo explique clairement le concept des environnements virtuels et vous guide pas à pas dans l'utilisation de venv.

Regardez les sections suivantes pour bien comprendre les étapes clés : Qu'est-ce qu'un environnement virtuel ? : Comprenez le "pourquoi" derrière cette pratique. Création et activation : Apprenez les commandes pour créer, activer et désactiver un environnement. Notez bien la légère différence de commande entre Windows et Mac/Linux. Installation de paquets : Voyez comment pip fonctionne à l'intérieur d'un environnement activé et comment les paquets sont isolés.

Gérer les dépendances avec requirements.txt

Une pratique essentielle est de garder une liste de tous les paquets (et leurs versions exactes) dont votre projet a besoin. Cela permet à n'importe qui d'autre (ou à vous-même sur une autre machine) de recréer l'environnement à l'identique. Le fichier standard pour cela s'appelle requirements.txt.

La commande pip freeze > requirements.txt génère ce fichier à partir de l'environnement actif.
La commande pip install -r requirements.txt installe tous les paquets listés dans le fichier.

Continuons avec la vidéo pour voir comment cela fonctionne en pratique.

Python Virtual Environments - Full Tutorial for Beginners

Cette partie du tutoriel vous montre le flux de travail complet pour partager et recréer un environnement.

Regardez attentivement le segment sur les fichiers d'exigences. C'est une compétence cruciale pour la reproductibilité de vos projets.

Pour une référence textuelle rapide des commandes venv, vous pouvez consulter le guide suivant. Il résume bien les étapes.

How to Create Virtual Environments in Python - OneUptime

Cet article de OneUptime fournit un aide-mémoire très pratique pour les commandes venv.

Parcourez rapidement les sections suivantes pour mémoriser la syntaxe des commandes que vous venez de voir en vidéo : Création, activation et désactivation Installation de paquets Gestion des dépendances


Méthode 2 : conda, le couteau suisse de la science des données

Puisque vous avez installé Anaconda, vous avez accès à un outil de gestion d'environnements encore plus puissant : conda.

La principale différence est que conda peut gérer tout ce dont un projet a besoin :

  • La version de Python elle-même (vous pouvez avoir un environnement avec Python 3.8 et un autre avec Python 3.10 sur la même machine).
  • Les paquets Python (comme pip).
  • Des paquets non-Python. C'est son grand avantage. Par exemple, pour l'apprentissage profond, vous aurez besoin de bibliothèques comme CUDA de NVIDIA pour utiliser votre carte graphique. conda peut les installer et gérer leur compatibilité pour vous, ce que venv ne peut pas faire.

Le flux de travail avec conda est très similaire :

  1. Créer : conda create --name mon_env python=3.9 (notez qu'on spécifie la version de Python directement).
  2. Activer : conda activate mon_env.
  3. Installer : conda install numpy pandas.
  4. Désactiver : conda deactivate.

La vidéo suivante de Krish Naik montre comment créer des environnements, y compris avec conda.

Different Ways Of Creating Python Environment In Data Science Projects- Conda,Virtualenv,Python

Cette vidéo compare différentes méthodes. Nous allons nous concentrer sur la partie concernant conda, qui est la plus pertinente pour vous.

Regardez le segment qui montre comment créer un environnement avec conda. L'auteur souligne à juste titre que c'est une méthode très efficace, surtout pour la science des données, car elle gère facilement les versions de Python et les paquets complexes.


venv vs. conda : Lequel choisir ?

Vous connaissez maintenant deux méthodes. Laquelle devriez-vous utiliser ?

  • venv est excellent pour le développement Python général (par exemple, des applications web) où les dépendances sont uniquement des paquets Python. Il est léger et intégré à Python.
  • conda est l'outil de choix pour la science des données et l'apprentissage automatique. Sa capacité à gérer des paquets complexes et non-Python simplifie grandement l'installation d'outils comme TensorFlow, PyTorch, et les bibliothèques GPU.

Le tableau ci-dessous, tiré d'un article comparatif, résume bien les différences.

Ce tableau met en évidence les forces et les faiblesses de `venv` (léger, rapide, simple) et de `conda` (plus lourd, mais gère les dépendances non-Python et est plus adapté à la science des données).

Recommandation pour ce cours :
Étant donné que votre objectif est l'apprentissage automatique et que vous avez déjà installé Anaconda, je vous recommande fortement d'utiliser conda pour créer vos environnements. Cela vous évitera bien des maux de tête plus tard lorsque nous installerons des bibliothèques plus complexes comme PyTorch.


Votre flux de travail pratique

Voici les étapes que je vous suggère de suivre pour chaque nouveau mini-projet que nous ferons dans ce cours :

  1. Ouvrez le terminal de votre système (ou l'Anaconda Prompt sur Windows).
  2. Créez un nouveau dossier pour votre projet et naviguez à l'intérieur.
    mkdir mon-projet-ml
    cd mon-projet-ml
    
  3. Créez un nouvel environnement conda. Donnons-lui un nom et spécifions une version de Python (par exemple, 3.9 est un choix stable et moderne).
    conda create --name projet-ml python=3.9
    
    conda vous demandera de confirmer. Tapez y et Entrée.
  4. Activez votre nouvel environnement.
    conda activate projet-ml
    
    Vous verrez que le nom de l'environnement apparaît au début de votre invite de commande.
  5. Installez les bibliothèques de base dont nous aurons besoin au début, ainsi que Jupyter.
    conda install jupyter numpy pandas scikit-learn
    
  6. Une fois dans l'environnement activé, lancez Jupyter Notebook.
    jupyter notebook
    

Jupyter se lancera et n'aura accès qu'aux paquets installés dans cet environnement projet-ml, garantissant un espace de travail propre et isolé.


Conclusion

Vous avez ajouté une compétence essentielle à votre boîte à outils de développeur. Savoir isoler ses projets est la marque d'un travail rigoureux et professionnel.

Voici les points clés à retenir :

  • Les environnements virtuels sont des dossiers isolés qui contiennent les dépendances spécifiques à un projet, évitant les conflits.
  • venv est l'outil standard de Python, léger et parfait pour les projets ne dépendant que de paquets Python.
  • conda est un gestionnaire d'environnements et de paquets plus puissant, idéal pour la science des données car il gère aussi les dépendances non-Python et les versions de Python elles-mêmes.
  • Pour notre parcours en apprentissage automatique, conda est l'outil recommandé.

Maintenant que nous savons comment préparer un espace de travail propre pour n'importe quel projet, nous sommes prêts à plonger dans le langage Python lui-même. Dans la prochaine leçon, nous commencerons par les briques de base de tout programme : les variables et les types de données.