« Le zen de projets Python florissants en 2025 est un interprète par projet et une chaîne d’outils par tâche. Master environnement virtuel d’abord; le reste suit naturellement."
Python 2 a atteint la fin de vie en janvier 2020 et n’est plus expédié par les distributions Linux ou les installateurs Windows. Aujourd’hui, chaque paquet activement entretenu – scientifique, géospatial ou autre – supporte CPython ≥ 3.9, la plupart des bibliothèques testant maintenant contre Python 3.13. Plusieurs interprètes peuvent encore coexister sur la même machine (QGIS / ArcGIS Pro intègre ses propres 3.11, Nvidia CUDA en envoie un pour PyTorch, etc.), mais la façon moderne d’isoler les projets est de léger environnements virtuels créés par venv, pipx, ou conda/mamba.
Ce chapitre distille un flux de travail qui construit de façon fiable la pile de calcul utilisée dans ce livre électronique, quelle que soit la plateforme. Il souligne
conda/mambaas a smooth cross-platofrm default solution,pip+venvpour Linux/macOS (alternative; utiliser de préférencemamba),des améliorations récentes dans les roues binaires pour GDAL/Fiona/Shapely (pip sur Windows est enfin sans douleur!), et
des moyens durables de maintenir les environnements reproductibles.
Avant de continuer, une installation python exploitable multiplateforme, incluant GDAL, peut être installée en utilisant notre project template:
Installez mamba pour votre plateforme.
Téléchargez notre environment.yml.
Ouvrez un terminal (inviteline de commande), naviguez dans le répertoire où l’environnement * téléchargé. yml* vit et crée l’environnement :
mamba env create -f environment.ymlActiver l’environnement et exécuter Python :
mamba activate wrr-proj (wrr-proj) user@computer:$ pythonVérifiez si l’installation des geopackages a fonctionné (aucun message d’erreur ne doit se produire):
>>> from osgeo import gdalOptionnellement, si la vérification a réussi, quitter python et pip-install flusstools dans cet environnement
wrr-project:>>> exit() (wrr-proj) user@computer:$ pip install flusstools
pip + venv¶
Démarrage rapide (Linux Mint/Ubuntu 22.04 LTS ou ultérieur)¶
Installer un nouvel interprète¶
$ sudo apt update && sudo apt install python3 python3-venv python3-dev build-essential libgdal-dev gdal-binLes dépôts Debian/Ubuntu modernes paquetent déjà CPython 3. Les en-têtes dev supplémentaires sont nécessaires pour les roues qui compilent encore des extensions C au moment de l’installation.
Créer & activer un environnement¶
$ python3 -m venv ~/venvs/vflussenv
$ source ~/venvs/vflussenv/bin/activateA venv n’hérite que du binaire de l’interprète.
Mise à niveau des outils de base¶
(vflussenv) $ python -m pip install --upgrade pip wheel setuptoolspip 24.x regroupe la nouvelle fonction repair wheel qui corrige plusieurs roues-linux et macOS à la volée.
Installer les exigences¶
Pour l’analyse des données sans la bibliothèque géospatiale GDAL, téléchargez ce fichier requirements.txt. Autrement, pour inclure les bibliothèques pour l’analyse des données géospatiales, télécharger ce requirements.txt. Installez le fichier requirements.txt dans un nouvel environnement appelé `vflussenv’ comme suit.
(vflussenv) $ pip install -r requirements.txtDes roues binaires pour GDAL, Rasterio, Fiona et Shapely sont disponibles sur PyPI depuis 2024‐10, donc plus de PPA externe n’est nécessaire.
Installer les flusstools¶
(vflussenv) $ pip install flusstoolsEssaie-le.
(vflussenv) $ python
>>> import flusstools as ftconda / mamba - recommandé sur Windows 11 et la science des données multiplateforme¶
État 2025 de GDAL sous Windows¶
2024‐10: gdal‐3.9.0‐cp311‐win amd64.whl atterrit sur PyPI > pure‐
pipinstalls enfin fonctionne sur Windows.Cependant, les grandes piles géospatiales (Proj, GEOS, HDF5, NetCDF) sont encore plus faciles via le canal conda-forge.
Utilisez
pipseulement lorsque vous * devez* garder l’environnement minimal.
Guide rapide (Anaconda / Miniforge)¶
Installer Miniforge 4 (plus léger qu’Anaconda, par défaut pour conda-forge) -- se référer aux instructions d’installation sur le site Web.
Obtenez les flusstools environment.yml et utilisez-les pour créer le conda
flussenv(prend quelques minutes):conda env create -f environment.ymlActivez
flussenvet installez flusstools, qui est un paquet uniquement hébergé par PyPi:conda activate flussenv pip install flusstoolsAjouter un noyau Jupyter :
ipython kernel install --user --name fluss_kernel
Installez des paquets supplémentaires avec pip¶
Plus de 500 000 projets vivent sur PyPI aujourd’hui. Syntaxe de base :
(vflussenv) $ pip installer Seaborn
(flussenv)
Installation en vrac¶
Les exemples de livres électroniques reposent sur la pile scientifique suivante (déjà incluse dans les exigences.txt) :
numpy, pandas, scipicy, matplotlib, naissance en mer
geopandas, forme, rastério, rastéristes, laspy
réseaux, openpyxl, tabulation
Installez-les manuellement avec :
(vflussenv) pip install numpy pandas geopandas rasterio rasterstats laspy networkx openpyxl tabulateInstaller le noyau Jupyter¶
(vflussenv) pip install ipykernel jupyterlab
(vflussenv) python -m ipykernel install --user --name vfluss_kernelSélectionnez vfluss kernel de Kernel > Changer le noyau à l’intérieur de JupyterLab.
Environnements de mise à jour¶
Mettre à jour l’environnement virtuel (venv)¶
agréable—virtualenv rend cela simple. ici, c’est un flux de mise à niveau robust en place qui maintient votre veine actuelle (vflussenv) et se concentre sur JupyterLab + Jupyter Book.
1. Activer & instantané pour faciliter le retour
# activate your venv if not already
source vflussenv/bin/activate
# snapshot current state for rollback
pip freeze > requirements-$(date +%Y%m%d).txt2. Assurez-vous que la chaîne d’outils de construction est à jour
pip install -U pip setuptools wheel3. Aperçu des paquets périmés
pip list --outdated4. Mettre à jour tous les paquets (deux options)
Mettre à jour chaque paquet pip-managed sauf les installations VCS/URL directes.
python - <<'PY'import json, subprocess, sys
# get outdated packages in JSON
out = subprocess.check_output(
[sys.executable, "-m", "pip", "list", "--outdated", "--format=json"],
text=True
)
# take just the package names
names = [pkg["name"] for pkg in json.loads(out)]
# optional: don't re-upgrade the bootstrap tools every loop
skip = {"pip", "setuptools", "wheel"}
for name in names:
if name in skip:
continue
subprocess.check_call([sys.executable, "-m", "pip", "install", "--upgrade", name])
PYCette option préserve une sauvegarde et gère les différences macOS/Linux sed.
# start from a clean freeze
pip freeze > requirements.txt
# Linux:
sed -i 's/==/>=/' requirements.txt
# macOS (BSD sed):
# sed -i '' 's/==/>=/' requirements.txt
# upgrade per the relaxed pins
pip install --upgrade -r requirements.txt5. En option, épinglez le nouvel ensemble
pip freeze > requirements-upgraded-$(date +%Y%m%d).txt6. Vérifier
jupyter lab --version
jupyter-book --version
python -c "import sys; print(sys.version)"7. Nettoyage
Nettoyer les vieux caches de construction pour économiser de l’espace disque :
pip cache purgeMettre à jour conda env¶
1. Créer un instantané de l’état actuel (repli facile)
# exact conda specs
conda list --explicit > conda-specs-$(date +%Y%m%d).txt
# pip packages (if any were installed via pip)
python -m pip freeze > pip-freeze-$(date +%Y%m%d).txt2. Facultatif mais recommandé: conservez votre version mineure actuelle de Python
Cela empêche un saut inattendu de Python qui peut causer des conflits. Ajuster 3.11.* à quelque python --version montre :
python --version
# pin to current minor while updating other deps
conda install "python=3.11.*" -c conda-forge3. Assurez-vous que votre solveur est à jour
# update conda itself (and mamba if you have it) in base
conda activate base
conda update -n base -c conda-forge conda
# optional: if you use mamba
conda install -n base -c conda-forge mamba
conda activate vflussenv4. Mettre à jour tous les paquets conda
Utilisez la conda-forge stricte pour la cohérence (pour ne pas modifier votre YAML).
# with mamba (faster)
mamba update --all -c conda-forge --yes
# or with conda
conda update --all -c conda-forge --yes5. Si vous avez utilisé pip pour certains paquets, mettez à jour ceux aussi
Seulement faire cela après la mise à jour de conda. Cela maintient conda en charge des bibliothèques centrales.
# show what’s outdated (pip-managed only)
python -m pip list --outdated
# upgrade all pip-managed packages (safer loop than xargs)
python - <<'PY'
import subprocess, sys
out = subprocess.check_output([sys.executable, "-m", "pip", "list", "--outdated", "--format=freeze"], text=True)
pkgs = [line.split("==")[0] for line in out.splitlines() if "@" not in line]
for p in pkgs:
subprocess.check_call([sys.executable, "-m", "pip", "install", "-U", p])
PY6. Caches propres
conda clean -a -y7. Vérifier les versions
jupyter lab --version
jupyter-book --version
python -c "import sys, jupyterlab; print('py', sys.version);"Utilisation de l’environnement dans les IDE¶
JupyterLab¶
(vflussenv) jupyter labPointez votre navigateur à https://hydro-informatics.com/lab. Commuter les noyaux via le menu Kernel.
PyCharm¶
Fichier > Paramètres > Python Interpreter > Ajouter > existant > choisir
~/venvs/vflussenv/bin/python(Linux) ou%USERPROFILE%\mambaforge\envs\flussenv\python.exe(Windows).Activer Sync Python packaging tools de sorte que le terminal
pip installà l’intérieur de PyCharm’s mette à jour la liste des interprètes.
Suppression des environnements¶
Venv:
rm -rf ~/venvs/vflussenvConda:
conda env remove -n flussenv
Résultat de l’installation¶
Utilisez
python -m venv(pipxpour les outils CLI) à moins qu’un paquet requiert les bibliothèques C/C++ que votre OS ne peut pas satisfaire – puis atteindre conda-forge.Les utilisateurs de Windows ne need conda pour GDAL, mais conda reste le chemin le plus facile pour une pile de données géospatiales.
Épinglez les versions exactes pour les projets d’archives; utilisez
>=pins pour le code de recherche vivant.Ne jamais installer des paquets avec
sudo pip; toujours travailler dans un environnement isolé.