Installation de Python3 / Miniforge3 (Win-x64)

L’installation avec Miniforge3 remplace celle qui était faite avec Miniconda3 depuis la modification des ToS d’Anaconda en 2024. Elle est très similaire, la suite des opérations pourra se faire de la même manière en utilisant conda ou mamba, les mêmes environnements et les mêmes scripts d’environnement. L’intérêt de l’installation par miniforge3 est qu’elle ne fait plus appels aux canaux d’Anaconda sous licence (ex: defaults) mais qu’elle utilise par défaut conda-forge (libre de droits).

Article mis à jour en Janvier 2026.

Navigation dans le guide

Guide [ Installation de Python sous Win-x64 ]




1. Ecosystème Miniforge

Entre Mambaforge, Miniforge, Mambaforge-pypy3, Miniforge-pypy3 … que choisir ? Par exemple pour la version Miniforge 24.11.0-0 :

Nous constatons que Mambaforge et Miniforge3 sont similaires en taille, d’après ce que j’ai lu les deux sont identiques depuis 2023 ou 2024. PyPy est une alternative à CPython (le Python standard) et qui est réputé pour être plus rapide. Il y a peu de différences au niveau du code utilisateur, sauf qu’il faut être attentifs à la manière d’ouvrir et de fermer un fichier ou une structure de données (au sens large). Il faut fermer et libérer la mémoire explicitement et ne pas laisser Python faire le travail (ce qui devrait être une règle de base). Depuis la mi 2024 le support PyPy est progressivement éteint sur Conda-Forge, faute de ressources. Donc dans la pratique nous utiliserons l’installeur miniforge3 tout en adoptant quelques règles de programmation compatibles PyPy (au cas ou).

2. Choix de la version de Python

Nous avons validé le choix de l’installeur, maintenant il y a la question de la version de Python. La dernière version de l’installeur miniforge3 correspond généralement à une version très récente de Python. Si nous voulons une version antérieure de Python, avec miniforge3 ce n’est pas aussi simple qu’avec miniconda3. Il faudra aller sur le GitHub  dans le dossier releases [ https://github.com/conda-forge/miniforge/releases ]  pour avoir accès à une liste de versions, sans mention explicite, il faudra trouver la version de Python dans les messages.

La version Python 3.10 peut être chargée à partir de la release 22.9.0 (Novembre 2022).
La version Python 3.12 peut être chargée à partir de la release 24.7.1 (Septembre 2024).
La version Python 3.14 peut être chargée à partir de la release 25.11.0 (Décembre 2025).

Si l’installation dépends de canaux qui ne sont pas mis à jour en même temps, par exemple Anaconda defaults et conda-forge (ou d’autres canaux), il est préférable de ne pas utiliser la dernière version de Python, car il y a des chances que nous ne dispositions pas des versions binaires de tous les paquetages pour une version donnée du langage.
Si la distribution est homogène : tous les paquetages proviennent du même canal, par exemple conda-forge, nous avons nos chances. Dans ce cas, et pour une première installation (qui servira de base à une version de production) nous pourrons utiliser la version de Python proposée par l’installeur courant.
Pour vérifier la version de l’installeur miniforge3 en cours, il ne faut pas aller dans la section Download de Conda-Forge mais dans le GitHub déjà cité.

La section Packages [ https://conda-forge.org/packages/ ] permet d’avoir un point de vue global sur les versions de paquetages en cours. Si les choix ont été faits en connaissance de cause, pour télécharger l’installeur courant, il faudra aller dans la section Download de Conda-Forge [ https://conda-forge.org/download/ ].

3. Utilisation d’une version antérieure

Toujours dans le github Miniforge, il faut se positionner sur la version d’intérêt, par exemple la dernière révision avant un changement de version de Python, puis ouvrir l’élément Assets (après la liste des contributeurs) qui va afficher la liste des installeurs de Miniforge disponibles. Par exemple pour la version 25.9.1 (Octobre 2025) qui correspond encore à une version 3.12 de Python puisque la version 3.14 apparaît à la release suivante (25.11) :

Il faut donc télécharger l’installeur, par exemple Miniforge3-25.9.1-0-Windows-x86_64.exe puis l’installer. Pour être certains de la version de Python, il faut faire un simulacre d’installation, à un moment l’installeur nous indique la version de Python, nous vérifions bien qu’il s’agit de la version 3.12 :

Après installation, dans la liste des applications, la version de Python est explicite :

Ma procédure n’est pas terrible, mais elle est sure, une autre option est de garder les installateurs annotés avec la version de Python dans un dépôt privé. Ceci dit il y a toujours des choses qui évoluent, Python mais aussi mamba, et il vaut mieux être le plus cohérent dès le départ de l’installation plutôt que faire des mises à jour.

4. Installation

L’installation se fait avec les mêmes paramètres que pour Miniconda3: mode utilisateur (Current user) et non All Users.  On peut installer la distribution dans  c:\Python3 s’il s’agit de la seule installation de Python. Au passage, si une autre installation est présente dans un autre répertoire, il faudra valider qu’elle n’a pas d’impact sur celle ci. Ce qui peut être possible à cause de fichiers de configuration qui seraient présents dans un répertoire personnel (ex: .condarc ou autres).
Nous n’ajoutons pas de chemins d’accès à la variable d’environnement PATH et nous n’enregistrons pas Miniforge3 comme Python3 par défaut, on peut appliquer les autres options. Cette installation ‘pèse’ moins de 400 Mo, avec une organisation similaire à miniconda3.

Il peut y avoir un problème de droits lorsqu’on travaille hors de la zone utilisateur de Windows.

Dans ce cas de figure, nous constatons que l’installeur Miniforge3 supprime des droits sur le dossier après l’installation, ce qui fait que l’on perds certains droits hérités pour les Utilisateurs authentifiés (Modification, Lecture et exécution, Affichage du contenu du dossier, Lecture, Ecriture). L’ensemble de ces droits étaient présents lorsque le dossier  c:\Python3 a été manuellement créé. Du coup, toutes les installations et mises à jour de paquetages vont échouer !

Procédure de contournement
Il faudra rétablir (ou vérifier) ces droits, dans les propriétés de c:\Python3, onglet Sécurité, il faudra ajouter à nouveau le groupe Utilisateurs authentifiés (l’écrire à la main puis vérifier le nom) puis fixer les droits en utilisant l’écran Avancé en remplaçant (récursivement) toutes les entrées d’autorisation des objets enfants. Il faudra vérifier après ce processus que les nouveaux droits s’appliquent bien à C:\Python3\pkgs.

5. Environnement (base) initial

Une fois que l’installeur a terminé sa tâche nous avons accès à Python via un raccourci Miniforge Prompt qui ouvre une invite de commandes. Nous disposons d’un environnement (base) minimal avec une centaine de paquetages, par exemple :

Nous constatons qu’il y a quelques différences avec une installation miniconda3, nous pouvons lister les modules installés avec les commandes conda list ou mamba list. Nous constatons que conda et mamba sont bien présents, ainsi que les runtimes vc14 et vs2015 de Microsoft. Nous pouvons tester aussi la version de Python :

(base) C:\Dev>python -V
Python 3.12.8

6. Lancement d’un environnement par script

Le script setvars.bat sera directement utilisable et dans les mêmes conditions que pour miniconda3, il permet de lancer au choix, l’environnement (base) ou (prod). Par exemple dans le cas d’une installation sous Windows 10 (extrait) :

Microsoft Windows [version 10.0.19045.5247]
(c) Microsoft Corporation. Tous droits réservés.C:\Dev>setvars*** SETVARS (2024/09 PYTHON3)
*** Set Windows Paths
*** Set UNIX commands
...
*** Set conda environment
(N) no environment
(B) BASE environment
(P) PROD environment
Choice [N, B, P]?B*** Setting conda environment (base)
*** Set some aliases
alias: 'scite' for SciTE editor
alias: 'geany' for Geany editor
alias: 'spyder' for Spyder IDE
*** Configuration information
"--------------------------------------"
C:\Python3;C:\Python3\Library\mingw-w64\bin;C:\Python3\Library\usr\bin;C:\Python3\Library\bin;
C:\Python3\Scripts;C:\Python3\bin;C:\Python3\condabin;C:\Local\UxUtils\wbin;.;

"--------------------------------------"
*** Going at home
*** SETVARS *** done
(base) C:\Dev>

Cet environnement (base) initial est fonctionnel, nous pouvons tester Python avec les programmes (ex: calcul_couts.py) génériques (qui ne nécessitent pas autre chose que la primo installation).

7. Mise à jour

Avant de faire un update, il est préférable de purger (vider le contenu) le fichier .condarc présent à la racine du répertoire utilisateur Windows (par exemple C:\Users\utilisateur). Nous pouvons laisser la ligne auto_activate_base: true. Pour le reste, une mise à jour pourrait prendre en compte la présence de canaux résiduels issus d’une autre installation. Une fois que cela est fait, nous pouvons lancer la procédure avec mamba update -all (extrait):

(base) C:\Dev>mamba update --all

Looking for: ['archspec', 'boltons', 'brotli-python', 'bzip2', 'ca-certificates', 'certifi', 'cffi', 'charset-normalizer', 'colorama', 'conda', 'conda-libmamba-solver', 'conda-package-handling', 'conda-package-streaming',
...
'requests', 'ruamel.yaml', 'ruamel.yaml.clib', 'setuptools', 'tk', 'tqdm', 'truststore', 'tzdata', 'ucrt', 'urllib3', 'vc', 'vc14_runtime', 'vs2015_runtime', 'wheel', 'win_inet_pton', 'yaml-cpp', 'zstandard', 'zstd']

conda-forge/win-64 Using cache
conda-forge/noarch Using cache

Pinned packages:
  - python 3.12.*
Transaction
  Prefix: C:\Python3
  Updating specs:
   - archspec

   - openssl

Package                            Version  Build                  Channel      Size
------------------------------------------------------------------------------------
Install:
------------------------------------------------------------------------------------
+ cpp-expected                       1.1.0  h91493d7_0         conda-forge      24kB
+ spdlog                            1.14.1  h9f2357e_1         conda-forge     169kB
+ nlohmann_json                     3.11.3  he0c23c2_1         conda-forge     124kB
+ simdjson                          3.11.3  hc790b64_0         conda-forge     254kB

Change:
------------------------------------------------------------------------------------
- libarchive                         3.7.7  h8879055_2         conda-forge     977kB
+ libarchive                         3.7.7  h979ed78_3         conda-forge       1MB
- distro                             1.9.0  pyhd8ed1ab_0       conda-forge      42kB
+ distro                             1.9.0  pyhd8ed1ab_1       conda-forge      42kB
...

Upgrade:
------------------------------------------------------------------------------------

- ca-certificates                2024.8.30  h56e8100_0         conda-forge     159kB
+ ca-certificates               2024.12.14  h56e8100_0         conda-forge     157kB
- libcurl                           8.10.1  h1ee3ff0_0         conda-forge     342kB
+ libcurl                           8.11.1  h88aaa65_0         conda-forge     350kB
...
Summary:
Install: 4 packages
Change: 3 packages
Upgrade: 10 packages

Total download: 10MB
------------------------------------------------------------------------------------
Confirm changes: [Y/n]

Ce qui est aussi un bon moyen de vérifier qu’il n’y a pas de canaux autres que conda-forge, mamba va indiquer en rouge ce qui est obsolète et doit être remplacé, en vert la version mise à jour, ce qui concerne dans ce cas la plupart des composants de la distribution : conda, conda-libmamba-solver, libmambapy, mamba, pip
Pour rechercher un paquetage, nous pouvons utiliser mamba search qui par défaut va explorer les canaux conda-forge/noarch et conda-forge/win-64.

8. Finalisation de l’installation

Puis il faudra finaliser l’installation de l’environnement (base) pour ajouter les paquetages nécessaires. Les mêmes étapes peuvent être suivies que dans le cas de Miniconda3, il faut juste remplacer (et dans les règles) defaults par conda-forge si conda est utilisé, ou utiliser mamba (préféré).

Avec un script (préféré)
Pour une primo installation, je préfère compléter l’environnement en utilisant le script install-base.bat qui dirige la l’installation et qui fonctionne pour miniforge3 et miniconda3. L’intérêt du script est que les paquetages sont regroupés par blocs dans un ordre qui n’est pas du au hasard: on minimise les problèmes de dépendances et chaque bloc est conçu pour être auto-cohérent et ne faire appel qu’à un minium de dépendances que l’on peut auditer.

Avec un fichier de spécifications
Une alternative est d’utiliser un fichier de spécifications (ex: spec-file.txt) pour ajouter les modules manquants avec une commande install :

conda install --name base --file spec-file.txt

Il faudra que le fichier de spécification soit adapté et qu’il pointe bien vers le canal  conda-forge pour l’ensemble des paquetages, par exemple :

List of packages in environment: "C:\\Python3"
Name                     Version                      Build                     Channel
---------------------------------------------------------------------------------------
_openmp_mutex                4.5                      2_gnu                 conda-forge
archspec                   0.2.3               pyhd8ed1ab_0                 conda-forge
asttokens                  3.0.0               pyhd8ed1ab_1                 conda-forge
...
scipy                     1.14.1            py312h337df96_2                 conda-forge
seaborn                   0.13.2                 hd8ed1ab_3                 conda-forge
seaborn-base              0.13.2               pyhd8ed1ab_3                 conda-forge
...
zipp                      3.21.0               pyhd8ed1ab_1                 conda-forge
zstandard                 0.23.0            py312h7606c53_1                 conda-forge
zstd                       1.5.6                 h0ea2cb4_0                 conda-forge

Pour une primo installation il est bon de savoir ce qui se passe car nous sommes dépendants des versions (Python, paquetages) et entre temps nous avons peut être changé de version de Python avec l’installeur miniforge3, dans ces conditions je préfère utiliser un script.

Liens et lectures
Retour en haut