Aller au contenu

2.1 Conda - Théorie et contexte

Retour à la formation | Section suivante: Installation →


Le problème que Conda résout

Vous avez probablement rencontré cette situation frustante : vous installez pip install gdal pour un projet de géomatique, et vous recevez une erreur du type :

ERROR: Could not find a version that satisfies the requirement GDAL
ERROR: Could not build wheels for GDAL

Ou pire, l'installation réussit, mais GDAL ne trouve pas la bibliothèque PROJ au moment de l'exécution. Pourquoi ? Parce que GDAL n'est pas qu'une librairie Python. C'est une collection de outils géospatiaux écrits en C/C++ (GDAL, GEOS, PROJ, TIFF, etc.) qui ont besoin d'être compilées correctement et de fonctionner ensemble.

Python seul (avec pip) ne peut pas gérer ces dépendances C. C'est le rôle de Conda.

Note technique : pip peut installer facilement certaines bibliothèques (PyTorch, seaborn) car elles fournissent des wheels (.whl) — des librairies Python pré-compilées sur PyPI. GDAL et Rasterio ne fournissent PAS de wheels pour Windows, forçant pip à compiler depuis le code source, ce qui échoue fréquemment.


Qu'est-ce que Conda ?

Conda est un gestionnaire de paquets et d'environnements qui : - Télécharge des versions pré-compilées de GDAL, PROJ, et autres (au lieu de compiler localement) - Garantit que toutes les dépendances C sont compatibles entre elles - Permet de créer des environnements isolés pour chaque projet


Anaconda vs Miniforge : Quel choisir ?

Avant de choisir votre gestionnaire, il faut comprendre qu'Anaconda et Miniforge sont deux distributions de Conda (il en existe d'autres : Miniconda, Mambaforge, etc.).

Anaconda est la distribution "complète" : elle installe ~250 librairies pré-compilées (NumPy, Pandas, Matplotlib, etc.) d'emblée. C'est comme recevoir un couteau suisse avec 40 outils alors que vous n'en utiliserez que 3.

Miniforge est la distribution "minimale" : elle installe seulement Conda et laisse vous installer ce dont vous avez besoin. Plus léger, plus rapide, et plus flexible.

Aspect Anaconda Miniforge
Taille installation ~3 GB ~150 MB
Librairies pré-installées ~250 (NumPy, Pandas, etc.) Aucune
Temps installation ~10-15 minutes ~2-3 minutes
License Commerciale (payante pour pro) Open Source (100% libre)
Canal par défaut defaults (Anaconda Inc.) conda-forge (communautaire)
Idéal pour Débutants absolus Projets professionnels/géomatique

Ma recommandation pour ce cours : Miniforge avec le canal conda-forge

Pourquoi ? Parce que pour la géomatique et l'analyse de données spatiales, vous avez besoin de versions récentes et stables de GDAL, PROJ, et GeoPandas. Miniforge + conda-forge garantit des mises à jour régulières et une meilleure compatibilité avec l'écosystème géospatial.


Le rôle crucial de conda-forge

Conda utilise des canaux (channels) pour télécharger les librairies. Pensez à un canal comme une source/dépôt de librairies.

Canal defaults (fourni par Anaconda Inc.) - Librairies maintenues par l'équipe Anaconda - Mise à jour lente (focus sécurité) - Problème : GDAL et géospatial souvent obsolètes

Canal conda-forge (maintenu par la communauté) - ~20,000 librairies maintenues par des scientifiques et développeurs - Mise à jour rapide (nouvelles versions de GDAL disponibles rapidement) - Idéal pour géomatique et science des données - 100% gratuit et transparent (toutes les versions disponible sur GitHub)

Pour explorer : Consultez le dépôt conda-forge sur GitHub pour voir les milliers de librairies disponibles.

Exemple concret :

# Avec Miniforge (conda-forge est déjà le canal par défaut) :
conda install gdal                    # [OK] Fonctionne (utilise conda-forge)
conda install -c conda-forge gdal     # [OK] Fonctionne aussi (explicite)

# Avec Anaconda (canal defaults par défaut) :
conda install gdal                    # [!] Version obsolète du canal defaults
conda install -c conda-forge gdal     # [OK] Version à jour de conda-forge

Alternatives à Conda : Quand les utiliser ?

Vous avez d'autres outils pour gérer les librairies Python. Voici comment les utiliser :

Outil Utilité Quand l'utiliser Limitation
Conda Gestion complète (Python + dépendances C) Toujours pour géomatique -
Pip Installer librairies Python uniquement Librairies simples (seaborn, pandas) Ne compile pas dépendances C
Mamba Remplaçant ultra-rapide de Conda Conda trop lent ? Installez mamba Encore jeune (moins stable)
uv Alternative moderne à pip Projets Python pur (sans dépendances C) Récent, communauté petite
VENV Environnements Python seulement Jamais pour géomatique Pas de dépendances C

Bon à savoir : Miniforge fournit déjà mamba aux côtés de conda, vous pouvez donc immédiatement profiter de son solveur plus rapide.

Notre choix pour ce cours : Conda (et mamba quand vous voulez accélérer les installations).


Pourquoi isoler les environnements ?

Vous avez plusieurs projets de recherche sur lesquels vous travaillez ? Chacun a probablement besoin de versions différentes des mêmes librairies.

Scénario réaliste : - Projet A : Cartographie de zones protégées (GeoPandas 0.12, GDAL 3.6) - Projet B : Classification d'images satellites avec Random Forest (GeoPandas 0.14, GDAL 3.8, scikit-learn, rasterio)

Naïvement, vous pourriez installer toutes les librairies globalement. Mais quand vous installez GeoPandas 0.14 pour le Projet B, cela casse les dépendances du Projet A (qui attend 0.12).

♦︎ Avec Conda, chaque projet a son propre "environnement virtuel" avec ses propres versions :

# Passer du Projet A au Projet B
conda activate projet-a        # Vous utilisez GeoPandas 0.12
# ... travail sur Projet A ...

conda activate projet-b        # Vous utilisez GeoPandas 0.14
# ... travail sur Projet B ...

conda deactivate              # Revenir à l'environnement base

Avantage : Zéro conflit, zéro casse-tête. Chaque projet vit dans son propre "appartement virtuel".


Retour à la formation | Section suivante: Installation →