Conda est un gestionnaire d'environnements et de paquets pour Python (et d'autres langages) : il crée des environnements isolés, chacun avec sa propre version de Python et ses bibliothèques, sans conflit entre projets. Fini le « ça marche sur ma machine » : chaque projet a son environnement, que l'on peut recréer de façon reproductible (à l'identique sur une même plateforme, avec le bon fichier).
Cette leçon vous fait installer Miniforge (conda avec le canal libre
conda-forge) en vérifiant son empreinte, créer un environnement aux
versions épinglées, l'exporter de deux façons, le supprimer puis le recréer.
Les versions citées ont été relevées le 2026-10-17 sous Linux x86_64 (Debian 13).
Prérequis : un terminal Linux, quelques notions de Python et curl (absent d'une
Debian minimale : sudo apt install curl). Public : débutants en Python et en
data science.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Distinguer conda, Anaconda, Miniconda et Miniforge.
- Installer Miniforge en vérifiant son empreinte SHA-256.
- Créer et activer un environnement aux versions épinglées.
- Exporter un environnement de deux façons (
--from-historyet fichier figé) et le recréer. - Choisir entre ces deux exports selon l'objectif de reproductibilité.
Qu'est-ce que conda ?
Section intitulée « Qu'est-ce que conda ? »Conda résout deux problèmes à la fois : isoler les projets et gérer leurs paquets. Sans lui, installer deux projets qui exigent des versions différentes d'une bibliothèque provoque des conflits. Avec conda, chaque projet vit dans son environnement : une version de Python, un jeu de paquets, indépendants des autres.
Sa particularité face à pip : conda gère aussi des dépendances non Python (bibliothèques C, CUDA, compilateurs), ce qui le rend précieux en data science et en machine learning, où beaucoup de paquets reposent sur du code compilé. Si vous connaissez déjà les environnements virtuels Python, l'idée est la même, avec une portée plus large.
Anaconda, Miniconda ou Miniforge : quelle différence ?
Section intitulée « Anaconda, Miniconda ou Miniforge : quelle différence ? »Ces noms prêtent à confusion, car ils désignent soit l'outil (conda), soit une façon de l'installer. Voici comment les situer :
| Terme | Ce que c'est | Canal par défaut |
|---|---|---|
| conda | L'outil en ligne de commande | Selon la distribution |
| Miniforge | Installateur minimal (conda + Python), maintenu par la communauté conda-forge | conda-forge seul |
| Miniconda | Installateur minimal édité par Anaconda | defaults, canal d'Anaconda |
| Anaconda | Distribution complète (centaines de paquets et interface graphique), volumineuse | defaults, canal d'Anaconda |
Un canal (channel) est un dépôt de paquets que conda interroge. Le canal
conda-forge est communautaire et libre. Le canal defaults
d'Anaconda est soumis aux conditions d'utilisation d'Anaconda, qui prévoient une
licence payante pour certaines organisations : lisez-les avant d'installer
Miniconda ou Anaconda sur un poste professionnel. Cette formation retient
Miniforge pour une raison simple : il n'impose aucune condition d'usage d'Anaconda
(conda-forge est un canal communautaire, libre d'utilisation) et configure
conda-forge dès l'installation.
Comment installer Miniforge et vérifier l'empreinte ?
Section intitulée « Comment installer Miniforge et vérifier l'empreinte ? »Une empreinte (hash SHA-256) est une suite de 64 caractères calculée à
partir du contenu d'un fichier : si un seul octet change, l'empreinte change. On
télécharge donc le script d'installation, puis on vérifie son empreinte
avant de l'exécuter, plutôt qu'un curl | bash direct. Le nom du fichier porte
la version exacte (26.7.2-0), jamais « latest », pour que l'installation
soit la même demain. Côté curl, -fsSL fait échouer la commande sur une
erreur HTTP et suit les redirections, -O garde le nom du fichier distant.
Vérifiez d'abord l'architecture avec uname -m : x86_64 correspond au script
-Linux-x86_64.sh utilisé ici, une machine ARM (aarch64) prend le script
-Linux-aarch64.sh, dont l'empreinte est différente.
uname -m# x86_64V=26.7.2-0BASE="https://github.com/conda-forge/miniforge/releases/download/$V"curl -fsSL -O "$BASE/Miniforge3-$V-Linux-x86_64.sh"echo "281b0ac7d550802efc81af633225a5e6116d29ae72f3ab4eae7168c3931a4c05 Miniforge3-26.7.2-0-Linux-x86_64.sh" | sha256sum -c -La dernière commande compare l'empreinte écrite dans cette leçon à celle du
fichier téléchargé, et doit répondre Miniforge3-26.7.2-0-Linux-x86_64.sh: OK.
Avec une empreinte différente, elle répond FAILED, puis sha256sum: WARNING: 1 computed checksum did NOT match, et rend le code retour 1 : le fichier est
corrompu ou modifié, il ne faut pas l'exécuter.
Ce contrôle prouve l'intégrité : le fichier est bien celui dont vous avez
noté l'empreinte. Il ne prouve pas l'authenticité : il ne dit pas qui l'a
publié. Le fichier .sha256 de la release, hébergé au même endroit que le
script, est la source de l'empreinte ci-dessus, mais il ne suffit pas seul :
qui remplacerait le script sur la page de téléchargement remplacerait aussi son
fichier d'empreinte. Garder l'empreinte dans la leçon, relevée au moment
de sa rédaction, évite cette faiblesse sans prouver pour autant l'éditeur.
L'option -b installe sans poser de questions, -p fixe le dossier. Ensuite,
source charge conda dans le terminal courant :
bash "Miniforge3-$V-Linux-x86_64.sh" -b -p "$HOME/miniforge3"source "$HOME/miniforge3/bin/activate"conda --version# conda 26.7.2conda config --show channels# channels:# - conda-forgeLe canal conda-forge apparaît seul : c'est la preuve que l'installation ne touche pas aux canaux d'Anaconda. Le prompt affiche (base), l'environnement de base de conda, qu'on évite d'encombrer.
Le source est à refaire dans chaque nouveau terminal, car l'installation
avec -b ne modifie pas les fichiers de démarrage du shell. Sans lui,
conda: command not found apparaît dès qu'on ouvre une autre fenêtre. Le
message de conda suggère parfois conda init, qui modifie ces fichiers : cette
leçon préfère le source explicite, qui ne touche à rien.
Comment créer et activer un environnement aux versions épinglées ?
Section intitulée « Comment créer et activer un environnement aux versions épinglées ? »Épingler une version, c'est demander numpy=2.5.4 plutôt que numpy. Sans
épinglage, conda installe la version la plus récente compatible au jour de la commande :
deux personnes qui lancent la même commande à six mois d'écart n'obtiennent pas
le même environnement. L'environnement de cette formation s'appelle data et
contient Python, Jupyter, NumPy, pandas, scikit-learn et matplotlib :
conda create -n data \ python=3.12.15 jupyterlab=4.6.4 notebook=7.6.3 nbconvert=7.17.2 \ numpy=2.5.4 pandas=3.0.6 scikit-learn=1.9.1 matplotlib=3.11.2conda activate datapython --version# Python 3.12.15Conda affiche d'abord la liste des paquets à installer et attend une
confirmation : tapez y. Il peut aussi avertir que la transaction « includes
executing package scripts (pre/post-link/unlink) » : un paquet conda peut
exécuter des scripts à l'installation, comme un postinstall. C'est un
angle chaîne d'approvisionnement : on n'installe que depuis un canal de
confiance (ici conda-forge) et à des versions épinglées. Le prompt affiche ensuite (data), signe que
l'environnement est actif : tout ce que vous installez y reste confiné.
Pour contrôler les versions réellement installées :
python -c "import numpy, pandas, sklearn, matplotlib; print(numpy.__version__, pandas.__version__, sklearn.__version__, matplotlib.__version__)"# 2.5.4 3.0.6 1.9.1 3.11.2Pour lister vos environnements et en sortir :
conda env list # tous les environnementsconda deactivate # revenir à l'environnement précédentComment installer un paquet de plus ?
Section intitulée « Comment installer un paquet de plus ? »À l'intérieur d'un environnement actif, on ajoute un paquet avec conda install, de préférence avec sa version (remplacez 1.2.3 par la version voulue). Miniforge utilisant déjà conda-forge, inutile de répéter le canal :
conda install nom-du-paquet=1.2.3Comment reproduire un environnement ?
Section intitulée « Comment reproduire un environnement ? »Il existe deux exports, qui ne répondent pas à la même question. L'option
--from-history ne garde que les paquets que vous avez explicitement
demandés, sans les centaines de dépendances transitives (les paquets que
vos paquets installent à leur tour). Le fichier reste lisible et portable
d'une plateforme à l'autre, mais les dépendances transitives peuvent changer
entre deux créations :
conda env export --from-history > environment.ymlSur l'environnement créé plus haut, le fichier produit ressemble à ceci :
name: datachannels: - conda-forgedependencies: - jupyterlab=4.6.4 - nbconvert=7.17.2 - numpy=2.5.4 - pandas=3.0.6 - scikit-learn=1.9.1 - python=3.12.15 - notebook=7.6.3 - matplotlib=3.11.2prefix: /home/vous/miniforge3/envs/dataLe piège : --from-history n'invente aucune version. Il recopie ce que vous
avez tapé. Un environnement créé avec python=3.12 et des paquets sans version
s'exporte donc avec ces mêmes demandes floues, et le fichier ne reproduit rien.
C'est pourquoi les versions se fixent dès conda create, ou dans un
environment.yml écrit à la main. La ligne prefix: est propre à votre machine :
supprimez-la avant de partager le fichier.
Pour figer tout l'environnement, dépendances transitives comprises, conda
sait écrire une liste explicite : l'URL exacte de chaque paquet installé,
avec son empreinte MD5. Ce fichier est propre à une plateforme (son en-tête
porte # platform: linux-64), d'où le nom choisi :
conda list -n data --explicit --md5 > data-linux-64.txtLe choix dépend de l'objectif. Prenez environment.yml pour partager la
recette d'un projet entre machines ou systèmes différents (Linux, macOS),
en acceptant que les dépendances transitives évoluent. Prenez la liste
explicite pour rejouer exactement le même environnement sur la même
plateforme, par exemple pour reproduire un résultat ou débloquer une CI : elle ne
sert pas sur une autre plateforme, où l'on en génère une autre.
Pour vérifier que le fichier suffit, supprimez l'environnement puis recréez-le
depuis le fichier. L'option -n data redonne à l'environnement son nom
d'origine, que les leçons suivantes retrouvent. Conda peut demander une
confirmation avant de supprimer : tapez y.
conda deactivateconda env remove -n dataconda env create -n data -f environment.ymlconda activate dataAvec la liste explicite, la recréation passe par conda create -n data --file data-linux-64.txt à la place de conda env create. Rejouée le
2026-10-17, elle a redonné une liste explicite identique à l'originale.
Si conda activate data réussit et que python --version répond Python 3.12.15, l'environnement est reproductible, et prêt pour les leçons
Jupyter.
Les commandes essentielles
Section intitulée « Les commandes essentielles »Ce tableau résume les gestes de la leçon ; il sert de rappel, chaque commande a été vue en contexte plus haut.
| Commande | Rôle |
|---|---|
conda create -n nom python=3.12.15 | Créer un environnement |
conda activate nom | Activer un environnement |
conda deactivate | Quitter l'environnement actif |
conda env list | Lister les environnements |
conda install paquet | Installer un paquet |
conda env export --from-history | Exporter ce qui a été demandé |
conda list -n nom --explicit --md5 > nom-linux-64.txt | Figer l'environnement exact (une plateforme) |
conda create -n nom --file nom-linux-64.txt | Recréer depuis la liste explicite |
conda env create -n nom -f environment.yml | Recréer depuis un fichier |
conda env remove -n nom | Supprimer un environnement |
Que faire quand ça ne marche pas ?
Section intitulée « Que faire quand ça ne marche pas ? »Quatre symptômes reviennent chez les débutants. Chacun a une cause simple, qu'on lit dans le message ou dans le prompt.
| Symptôme | Cause probable | Solution |
|---|---|---|
conda: command not found après l'installation ou dans un nouveau terminal | conda n'est pas chargé dans ce terminal | source "$HOME/miniforge3/bin/activate", puis conda activate data |
CondaError: Run 'conda init' before 'conda activate' | le binaire conda est trouvé, mais le shell n'est pas initialisé | source "$HOME/miniforge3/bin/activate" avant conda activate |
sha256sum -c répond FAILED | Fichier incomplet ou modifié | Supprimer le script, le retélécharger, ne pas l'exécuter |
PackagesNotFoundError | Version ou canal inexistant | Retirer la version, chercher avec conda search nom, vérifier conda config --show channels |
À retenir
Section intitulée « À retenir »- Conda isole les projets : un environnement par projet, sans conflit de versions.
- Miniforge installe conda avec conda-forge seul, sans condition
commerciale ; Miniconda impose les conditions d'usage des canaux
defaults. - Vérifiez l'empreinte (
sha256sum -c) d'un script versionné avant de l'exécuter, jamais un fichierlatest: cela prouve l'intégrité, pas l'authenticité. - Épinglez les versions dans
conda create:--from-historyrecopie vos demandes, il ne fige ni les dépendances transitives ni rien d'autre. - Deux exports :
environment.ymlpour la recette portable, liste explicite (--explicit --md5) pour le même environnement sur une plateforme. - Un environnement se prouve en le supprimant puis en le recréant depuis son fichier.
- Refaites le
sourcedans chaque nouveau terminal.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Score par domaine
Un domaine regroupe plusieurs guides et reçoit plusieurs questions : son score est plus fiable qu'un score par thème, qui porte souvent sur une seule question.
Bilan
Points forts
Aucun sujet réussi à 80 % sur au moins deux questions pour l’instant.
Points faibles
Aucun sujet sous le seuil de réussite.
À faire ensuite
Des indices pour retenter votre chance ?
Continuer le cours : Jupyter : qu'est-ce que c'est et comment ça marche
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
FAQ : questions fréquentes
Section intitulée « FAQ : questions fréquentes »conda create -n mon-projet python=3.12.15, puis conda activate mon-projet. L'environnement est alors isolé et actif.