Environnement (base) : paquetages (Win-x64)

L’objet de l’article est de détailler les paquetages, des tests de fonctionnement qui correspondent à une installation complète de l’environnement (base). Il s’agit d’une primo installation sur une architecture donnée, qui cherche à minimiser le nombre de paquetages et à servir de référence. Une fois que l’environnement est au point, il est alors possible d’utiliser un fichier de spécification ou un script pour réaliser une installation automatisée sur un autre poste. Dans ce cas il sera utile de consulter l’article [ Fast install Miniforge3 (Win-x64) ] sur ce blog.

Article mis à jour en Mai 2026.

Navigation dans le guide

Guide [ Installation de Python sous Win-x64 ]




Miniconda3 vs. Miniforge3
Avec une installation miniconda3, nous utilisions conda basée sur le canal defaults, sans  utilisation de pip ni de canaux tels que conda-forge. Depuis 2025 nous installons miniforge3, dans ce cas, conda-forge est utilisé dès l’environnement (base) avec conda ou mamba. Si on utilise conda il faudra spécifier le canal; si on utilise mamba, c’est conda-forge (noarch et win-64) qui sera sélectionné par défaut.

Spécificités Windows
Par rapport à Linux/Ubuntu, nous somme plus dépendants de paquetages binaires car la compilation est plus compliquée et il n’y a pas l’alternative apt (paquetages binaires et -dev) qui peut assurer quasiment 80% d’une installation (base et prod). Dans certains cas, il faudra peut-être utiliser un installeur (.exe ou .msi) mais il faudra limiter autant que possible cette option.

A propos de (base)
Lorsque Python s’installe, il produit l’environnement (base) avec quelques dizaines de paquetages. Parfois six et pyparsing ont été installés, parfois anaconda-anon-usage (basic anonymous telemetry for conda clients). Nous remarquons aussi la présence des runtimes (ex: vc14_runtimevs2015_runtime) liés au compilateur Microsoft C/C++ utilisé dans la distribution CPython. A partir de cette base, il va falloir utiliser des séquences d’installation, avec un ordre qui parfois est important pour éviter des problèmes de dépendances croisées. Si vous utilisez cet article, il est préférable d’installer les paquetages dans l’ordre qui est proposé.

Dans ce qui suit, nous utilisons mamba sans spécification de canal. Les commandes sont transposables à conda, mais il faudra spécifier le canal source et l’option –override-channels pour éviter d’être en conflit avec les ToS d’Anaconda (cf. script install-base.bat).

Liens et lectures

1. Paquetages généralistes

On peut commencer par cette liste pour vérifier que tout est fonctionnel, une grande partie de ces paquetages (sans trop de dépendances) seront probablement déjà installés avec la première instance de l’environnement (base) avec les canaux conda-forge/win-64 et conda-forge/noarch, l’option --yes permet de travailler en mode non interactif :

mamba install --yes bzip2 cftime ca-certificates certifi colorama dateutils expat et_xmlfile iniconfig icu jdcal krb5 libarchive libcurl libhwloc liblzma-devel libssh2 libxml2 libxslt lz4-c libzip libzlib lxml lzo nose openssl pip pluggy pyparsing pytz pytzdata python-dateutil python-tzdata setuptools six tbb tzdata urllib3 wheel xz xz-tools yaml-cpp zlib

Puis nous allons installer d’autres paquetages par thèmes et par blocs de dépendances, en faisant de cette manière et dans cet ordre, on peut limiter les problèmes.

Librairies de fondation

Comme Numpy est probablement déjà installé, la plupart (lapack, mkl, blas, intel-openmp …) seront également présents. Entre {accolades} des bibliothèques optionnelles, dans le script intall-base.bat elles correspondent à une ligne supplémentaire mise en remarque (rem).

Paquetage commandes
lapack mamba install liblapack {liblapacke}
mkl mamba install mkl mkl-service mkl_fft mkl_random {mkl-include mkl-devel}
blas mamba install libblas libcblas {blas blas-devel}
openmp mamba install intel-openmp libgomp _openmp_mutex
boost mamba install libboost libboost-python {libboost-devel boost-cpp libboost-headers}
(6) mamba install eigen pcre ply sip swig toml tomli libclang libclang13

Paquetages mathématiques

Si tout est correctement fait, mamba/conda ne devraient pas télécharger de paquetages additionnels.

Paquetage commandes
numpy mamba install numpy
numpy {miniconda3} {mamba install numpy-base icc_rt}
pandas mamba install pandas {bottleneck numexpr}
scipy mamba install scipy

Polices de caractères

Suivant la distribution miniconda3 ou miniforge3 il y a quelques différences.

Paquetage commandes
 (4) mamba install font-ttf-dejavu-sans-mono font-ttf-inconsolata font-ttf-source-code-pro font-ttf-ubuntu
 fonts {miniforge3} mamba install fonts-conda-ecosystem fonts-conda-forge
fonts {miniconda3} mamba install conda-ecosystem fonts-anacall fonts-call 
freetype + fontconfig mamba install freetype libpng fontconfig
(2) mamba install graphite2 harfbuzz
fonttools mamba install fonttools libbrotlicommon unicodedata2 libbrotlienc libbrotlidec brotli-bin brotli munkres
Liens et lectures

Librairies graphiques

La librairie glib (GTK glib2 et dérivés) qui ont compliqué beaucoup de choses sous Windows, s’installent maintenant, en mode autonome, sans problèmes. Il en est de même pour Cairo/PyCairo, nous ne sommes plus obligés de passer par une installation de GTK/PyGTK … c’est magnifique. Le paquetage jpeg ne doit pas être installé avec miniforge3 et doit être remplacé par openjpeg.

Paquetage commandes
glib mamba install glib glib-tools libglib pixman libintl libintl-devel
(7) mamba install libpng libtiff openjpeg giflib libjpeg-turbo gts
(4) mamba install lcms2 lerc libdeflate libwebp-base
cairo mamba install cairo pycairo

A ce stade, cairo devrait être fonctionnel, le programme hello-world.py dans C:\Dev\tests-buildez\test_pycairo doit produit l’image demandée.

Liens et lectures

Ghostscript

Pour installer Ghostscript il faut d’abord télécharger le programme [ https://ghostscript.com/ ] en version AGPL et l’installer dans C:\local\gs puis valider la variable d’environnement GS=C:\Local\gs\bin (nb: inclus dans le script setvars.bat). Il n’y a pas d’installation particulière, ghostcript sera utilisé en externe avec une méthode Python subprocess (ex: popen).

Liens et lectures

Frameworks PDF et renderers

Reportlab est encore utilisé par Rdkit, avec miniconda3 son installation downgrader d’autres paquetages (ex: freetype) ou nécessiter des installations/updates de python_abi, vc14_runtime, ucrt, vs2015_runtime. Avec miniforge3 il n’y a pas de problèmes, dans les deux cas reportlab doit être installé après cairo.

Paquetage commandes
poppler mamba install poppler poppler-data
pango mamba install pango fribidi
reportlab mamba install freetype-py rlpycairo reportlab

Libgcc, libgd, xorg et PIL/pillow

En fait c’est la librairie pillow qui est importante pour la production d’images, notamment de formules chimiques et en support d’autres bibliothèques.

Paquetage commandes
(8) mamba install libgd libgcc libxcb getopt-win32 libwinpthread pthread-stubs xorg-libxau xorg-libxdmcp
xorg mamba install xorg-libx11 xorg-libice xorg-libxext xorg-libsm xorg-libxt xorg-libxpm
PIL/pillow mamba install pillow {libwebp}

Tests buildez (ne concerne que le paquetage buildez)
A ce stade le core buildez (v:2.47 minimum) devrait être fonctionnel [  __init__, args, date, dict, dir, ideutils, index, job, jobctrl, libtools, libtools_macros, lines, logfile, matrix, msg, oslocal, sets, str, strcharsets, strmatrix, strunicode, strvec, vec ... ]
Nb: Pour ideutils il faudra programmer l’équivalent de eog (le viewer Ubuntu) pour afficher des images.
A ce stade les paquetages sont fonctionnels : buildez.cxs [__init__, texter], buildez.parsers [ __init__, csvm4csv, csvm4xml, csvmdict, csvmutil, lpz, query, csv, csvm], buildez.emb [__init__, embtools, stremb, strimg]. La plupart des modules possèdent des données et une interface de test qui permet de les tester individuellement et de les valider.

Liens et lectures

2. Paquetages pour les arbres

Il faut d’abord installer Graphviz en utilisant l’installeur (64-bit) EXE téléchargé depuis [ https://graphviz.org/download/ ]. Ne pas ajouter Graphviz au PATH système et installer Graphviz dans c:\local\Graphviz. Il faut ensuite valider la variable d’environnement GRAPHVIZ_PATH pointant vers c:\local\Graphviz\bin (en principe déjà inclus dans setvars) car il s’agit d’un répertoire qui inclue aussi des instances de cairo, dot et gv/gc spécifiques à Graphviz. Ensuite il faut installer graphwiz en tant que paquetage Python.
A ce stade, le test d’arbre treetest.dot (un fichier au format dot qui décrit l’arbre) dans C:\Dev\tests-buildez\test_graphviz produit l’image (out.png) d’arbre demandée :

dot -Tpng treetest.dot -o out.png
gc -necar treetest.dot

Il y a quelques subtilités concernant l’interface Python (pydot) au programme dot :

Paquetage commandes
graphviz mamba install graphviz
pydotplus L’installation de pydotplus n’est pas nécessaire (laissé pour usage futur).
pydot 1 et 2 Il ne faut pas installer pydot car c’est un programme qui est ancien et qui va demander le downgrade de pyparsing (3.x) en 2.4.x.
pydot3 A évaluer ! Une nouvelle version mise à jour en 2024 et 2025.
[ https://pypi.org/project/pydot/ ] et [ https://github.com/pydot/pydot ].

Pour finaliser il faut installer un code pydot compatible avec Python3.
Le paquetage free::pydot-ng n’est pas compatible avec Python 3.10, la situation peut changer mais au moment de cette installation type il était verrouillé sur Python 3.4. Par contre, on peut télécharger pydot-ng (1.0.0.15) et ouvrir le fichier egg (7zip) pour récupérer les fichiers, puis suivre cette procédure.

Créer un répertoire pydot_ng dans C:\Python3\Lib\site-packages\pydot_ng
Le répertoire contient __init__.py et _dotparser.py.
Supprimer le sous-dossier __pycache__
Lancer python __init__.py et python _dotparser.py pour recréer le cache.
Il n'y a rien à modifier dans les fichiers.
Dans buildez.tree.dotgraph, modifier pydot = buildimporter('pydot') par pydot = buildimporter('pydot_ng') si nécessaire (selon la version de buildez).

Tests buildez
A ce stade le paquetage buildez.tree [ __init__, analytics, dot, dotgraph, mtree, newick ] est fonctionnel. Il est capable de produire 4 types d’arbres :

neato fdp circo

Si on veut installer networkx :

Paquetage commandes
networkx mamba install networkx

3. Paquetages pour NetCDF

En l’état nous considérons la version 4, que nous n’utilisons pas (en ce moment) dans les environnements base ou prod.

Paquetage commandes
netcdf4-python {mamba install cftime hdf4 hdf5 libnetcdf libzip netcdf4}
Liens et lectures

4. Paquetages pour Internet

Beautiful Soup permet de faire de l’extraction de données dans un arbre HTML ou XML et du webscrapping. Il y a des applications en chimie et biologie pour l’interrogation (détournée) de bases de données. En général ce paquetage ne pose pas de problèmes, tests dans l’environnement (prod) en conjonction avec d’autres outils.

Paquetage commandes
(2) mamba install beautifulsoup4 soupsieve
Liens et lectures

5. Paquetages pour les SGBDR

On note que sqlite (paquetage sqlite3) le moteur de base de données Python est déjà installé (dans C:\Python3\Lib\sqlite3 et non dans \site-packages\) et qu’il inclue le module dbapi2.py pour l’interface avec sqlite2.
Dans des approches (chimie, biologie) il est nécessaire de faire des requêtes SQL complexes ou se connecter a d’autres bases de données (type MySQL ou PostGreSQL). Dans ce cas il faudra installer le paquetage SQLAlchemy.
Le paquetage libpq est un runtime et des utilitaires pour PostgreSQL, il n’y a pas de serveur installé, mais le paquetage sera nécessaire si on installe Rdkit dans l’environnement (prod).

Paquetage commandes
sqlalchemy mamba install greenlet typing-extensions sqlalchemy
libpq (postgresql) mamba install libpq

Pour SQLAlchemy, les tests sql01.py et sql02.py dans C:\Dev\tests-buildez\test_sqlalchemy ne sont pas encore fonctionnels, des erreurs sont résiduelles dans sqlalchemy, et restent à cerner.

Liens et lectures

6. Paquetages pour Microsoft Excel

Les possibilités de quelques bibliothèques, toutes ne sont pas maintenues. Finalement le mieux est de se restreindre à openpyxl qui lit/écrit les formats xlsx et qui est maintenu.

paquetage RW format site
openpyxl R/W xlsx, xlsm, xltx, xltm [ https://openpyxl.readthedocs.io/en/stable/index.html ]
xlwt W xls [ https://xlwt.readthedocs.io/en/latest/ ]
xlrd R xls [ https://xlrd.readthedocs.io/en/latest/index.html ]
xlutils [ https://xlutils.readthedocs.io/en/latest/ ] (xlrd / xlwt)
xlsxwriter W xlsx [ https://xlsxwriter.readthedocs.io/ ]

Certaines de ces bibliothèques sont installables avec mamba, d’autres avec pip, pour mémoire :

Paquetage commandes
pyexcel {mamba install pyexcel-xlsx pyexcel-io pyexcel}
{conda install %OPTIONS% pyexcel-xlsx pyexcel-xlsxw pyexcel-io pyexcel}
styleframe {pip install --dry-run styleframe}
xlutils/xlrd {mamba install xlutils xlrd}
xlwt/xlsxwriter {mamba install xlwt xlsxwriter}
openpyxl mamba install openpyxl
easypyxl {pip install --dry-run easypyxl}
pycel {pip install --dry-run pycel} ou {mamba install pycel networkx}
(3) {xlsimport xlsxcursor}

Certaines bibliothèques nécessitent des paquetages additionnels, qui ne sont pas nécessaires pour openpyxl, mais qui peuvent le cas échéant servir et qui se retrouveront installées au fil d’autres installations ou mises à jour (ex: chardet, texttable, colour, jsonschema …). Je donne une liste pour vérification:

mamba install attrs chardet colour importlib_resources jsonschema jsonschema-specifications lml pkgutil-resolve-name pyrsistent referencing rpds-py texttable zipp

7. Paquetages pour les widgets

Ces dernières années nous ne faisons plus beaucoup d’interfaces graphiques, mais cela arrive occasionnellement, l’essentiel devra être fait avec TkInter (tk, qui est installé par défaut) ou Qt5.

Paquetage commandes
(4) mamba install gst-plugins-base gstreamer libvorbis libogg
(1) mamba install double-conversion
qt5, qt6 mamba install pyqt pyqt5-sip qt-main qt6-main
pyside mamba install pyside6
pywin32 {mamba install pywin32}
pmw2 {pip install --dry-run pmw} ou {mamba install pmw}
pyface {mamba install pyface pygments traits importlib-metadata}

Notes d’installation:

  • Pour le moment on n’installe pluss Gtk (gtk-2, -3, -4) pour éviter des problèmes de dépendances (gdk, glib, libintl, gi, gobject …) causés par un mix conda-forge et pip.
  • On n’installe pas Tcl, sinon on doit installer m2w64 et je n’aime pas le m2 system.
  • On n’installe pas WxPython car pour le moment on n’en a plus besoin.
  • Pmw2  (pmw1 pour Python 2.x) basé sur TkInter s’installe par pip (2.1.1 en 2022) mais sur Source-Forge il y a un paquetage (2.1 de 2020) qui est indépendant de PyPi.
  • PySide (équivalent de PyQt) n’était disponible qu’avec pip, ce n’est plus le cas, mamba le trouve sur conda-forge, et il y a de grande chances qu’il soit installé par un paquetage tiers, par contre il ne s’agira que de la version pyside6 équivalente à PyQt6 (qui devra être installé en plus de PyQt5).
  • On pourrait installer Pyface backend pour PysSide2, PyQt5, wxPython 4. Cette bibliothèque est liée à Pygments et Traits et présente encore des problèmes pour validation.

Tests fonctionnels:
A ce stade, le test hello_world_qt5.py dans C:\Dev\tests-buildez\test_pyqt est fonctionnel (Qt5), c’est également le cas pour hello_world_pyside.py (basé sur PySide6 et Qt6).

python hello_world_qt5.py

Pendant longtemps Pywin32/pythonwin (Python2, win32) a été utilisée en tant que surcouche de TkInter et se trouve encore dans d’autres programmes tels UCSF Chimera, car cette bibliothèque fournit des widgets avancés et réellement utiles. Elle reste disponible à partir d’un GitHub mais sa stabilité doit être vérifiée. Dans C:\Python3\Lib\site-packages\pythonwin\pywin on peut lancer Pythonwin.exe puis dans l’interface ouvrir C:\Python3\Lib\site-packages\pythonwin\pywin\guidemo.py et le lancer, un menu regroupe plusieurs démos de Widgets. A n’utiliser que si on en a vraiment besoin ou pour le plaisir.

8. Plotters et statistiques

Pour Matplotlib et Seaborn il y a différents prérequis, par exemple une librairie de compression (Brotli) qui remplace Gzip et qui a déjà été installée avec fonttools.

Paquetage commandes
(7) mamba install contourpy kiwisolver qhull tornado cycler patsy statsmodels
matplotlib mamba install matplotlib-base matplotlib
seaborn mamba install seaborn-base seaborn

Notes d’installation:
A ce stade le test pyplot_test.py dans C:\Dev\tests-buildez\test_matplotlib est fonctionnel. Il affiche la fenêtre et plot et sauve l’image correspondante.

python pyplot_test.py

On n’installe plus basemap (projections cartographiques) qui va causer trop de dépendances avec pyproj, pin-1 et qui conflicte (ex: Python 3.10). Ce module devra être remplacé par Cartopy. Pour des graphiques complexes, on utilise plutôt Seaborn qui étends Matplotlib. Cette bibliothèque étant basée sur Matplotlib, en général quand ce dernier paquetage fonctionne, il n’y a pas d’erreurs avec Seaborn, programmes de tests en cours de validation.

Liens et lectures

9. Gnuplot

Certains modules peuvent encore l’utiliser, dans ce cas il faut télécharger la version courante (ex: gp600-win64-mingw.exe ) à partir de SourceForge. Il faut l’installer dans C:\Local\gnuplot et ne pas modifier le PATH. On peut fixer le terminal gnuplot à Windows ou Qt. Puis il faut valider les variables d’environnement dans setvars :

set GNUPLOT=C:\Local\gnuplot\bin
set GNUPLOT_LIB=C:\Local\gnuplot\demo;C:\Local\gnuplot\share

Coté Python, on pourrait installer les paquetages correspondants,  pygnuplot ou py-gnuplot (préféré).

Paquetage commandes
pygnuplot {pip install --dry-run pygnuplot}
py-gnuplot {pip install --dry-run py-gnuplot}

Sauf qu’on ne le fera pas (cf. --dry-run) on utilisera gnuplot directement et d’une manière externe, par exemple générer un fichier .plt puis le piper :

os.system('gnuplot fichier_temporaire')
shutil.copy('fichier_temporaire', 'fichier.plt')
Liens et lectures

10. Paquetages Bio

On peut installer Biopython jusqu’en version 1.78 avec une installation basée sur le canal defaults d’Anaconda. Dans ce cas pour les alignements de séquences, le module pairwise2 (deprecated) sera utilisable (tout en sachant qu’il peut être supprimé à un moment ou un autre). En principe l’installation de Biopython  nécessitait l’installation de reportlab, il semble que Biopython n’en soit plus dépendant, il en est de même pour les outils d’origine eGenix. Donc, n’installer que Biopython, avec mamba et conda-forge, car les versions récentes de buildez.Bio peuvent éviter l’utilisation de pairwise2:

Paquetage commandes
biopython (1.84) mamba install biopython
biopython (1.78) {conda %OPTIONS% install biopython}
biopython (1.8x) {conda %OPTIONS% install conda-forge::biopython}
biopandas mamba install biopandas looseversion msgpack-python mmtf-python

Helpers
Biopython s’installe bien mais si on veut utiliser toutes les fonctionnalités, il faut d’autres programmes/librairies (certains en mode wrapper), pour mémoire (non exhaustif) :

lib ReportLab – used for pdf graphics code
lib psycopg – used for BioSQL with a PostgreSQL database
lib mysql-connector – used for BioSQL with a MySQL database
lib MySQLdb – An alternative MySQL library used by BioSQL
tool Wise2 – for command line tool dnal
tool NCBI Standalone BLAST – command line tool for running BLAST on your local machine. W
tool Clustalw – command line tool for building sequence alignments W
tool EMBOSS – lots of useful command line tools.

On pourrait installer aussi BioSQL [ https://biosql.org/wiki/Main_Page ] pour les bases de données PostgreSQL, MySQL, Oracle … (installation core : les modules Python iront s’ajouter à Biopython).  A ce stade, le paquetage buildez.bio est fonctionnel sous Win-64 et peut utiliser Bio.pairwise2 ou le plus récent Bio.Align.PairwiseAligner (nb: qui produit des sorties avec un format différent).

Liens et lectures

11. Outils pour le code

Dans la mesure ou nous utilisons notre propre système de génération d’API nous n’avons plus besoin d’outils comme Doxygen. Par contre il nous faut un outil simple de coloration syntaxique du code pour la production de pages HTML. Pytest et Mock sont des outils pour les tests de codes. Certains IDEs permettent aussi une analyse syntaxique du code via des outils intégrés type Lint (par exemple Geany utilise pycodestyle).

Paquetage commandes
pycodestyle mamba install pycodestyle
pytest {mamba install pytest exceptiongroup}
mock {mamba install mock pytest-mock}
Liens et lectures

12. Console

Nous cherchons une implémentation alternative de curses/ncurses , tout en sachant que les fonctions dans la console de SciTE seront limitées sous Windows (contrairement à Ubuntu) car ce n’est pas un vrai shell. Finalement Rich est une alternative maintenue et multi OS qui peut être utile.

Paquetage commandes
rich mamba install pygments mdurl markdown-it-py rich
 windows-curses {conda install labscript-suite::windows-curses}
{pip install windows-curses}
Retour en haut