Python¶
Sur les machines Linux du CIRRELT/GERAD, il y a une version de python3 installée mais, ça ne sera pas la version a plus récente ce qui peut amener des problèmes de compatibilité avec les librairies que vous souhaitez utiliser.
Modules¶
D'autres versions sont disponibles en chargeant un des modules python. Vous pouvez obtenir une liste de ce qui est disponible avec cette commande:
Vous pouvez ensuite charger la version par défaut de cette façon:
ou vous pouvez aussi spécifier explicitement la version que vous voulez.
Environnement virtuel¶
Un environnement virtuel Python est un espace isolé où vous pouvez installer des librairies Python sans affecter les packages installés sur votre système global. Cela permet de travailler sur des projets Python avec des dépendances spécifiques sans avoir à vous soucier de conflits avec d'autres projets.
Pour créer et utiliser un environnement virtuel Python, il faut suivre ces étapes:
- Naviguez dans le répertoire racine de votre projet et exécutez la commande suivante dans votre terminal :
Cela crée un nouvel environnement virtuel dans un dossier appelé projet1 dans
le répertoire ou vous êtes.
- Activez l'environement virtuel Après avoir créé votre environnement virtuel, vous devez l'activer avant de pouvoir y installer des packages ou exécuter des scripts Python. Pour activer l'environnement virtuel, exécutez la commande suivante :
- Pour désactiver l'environement virtuel, exécuter la commande suivante dans votre terminal :
UV¶
uv permet d'installer python et aussi des librairies Python. C'est une
alternative à des outils comme pip, pyenv, venv,pipx, poetry, etc.
Pour pouvoir l'utiliser, vous n'avez qu'à charger le module:
Installer une version spécifique de python¶
uv permet entre autre de gérer l'interpréteur python à utiliser et peut installer sa propre version.
Pour obtenir une liste des interpréteurs disponibles, vous pouvez utiliser la commande:
Vous pouvez ensuite faire l'installation que vous voulez, par exemple
À noter que depuis la version 3.13 de python, il y a 2 variantes. La version traditionnelle et la version freethreaded qui n'a pas le verrou global (GIL), ce qui permet d'être plus performant si vous avez une application parallèle. Toutefois, si votre programme est séquentiel, la version traditionnelle est plus efficace.
Vous pouvez installer plusieurs versions:
Initialisation¶
Pour pouvoir utiliser uv pour un projet, il faut d'abord faire une initialisation.
Par exemple dans un répertoire projet1 dans lequel vous souhaitez utiliser uv.
Cette commande va créer plusieurs fichiers:
pyproject.toml: le fichier de configuration.python-version: la version de Python à utiliserREADME.md: un fichier markdown videmain.py: un programme de test.
Gestion des dépendances¶
Dans la plupart des programmes, vous allez utiliser des librairies additionnelles.
Vous pouvez les ajouter comme ceci:
Si plus tard, vous n'avez plus besoin d'une librairie, vous pouvez l'enlever. Par exemple, pour ruff, cette librairie n'est pas nécessaire au fonctionnement du logiciel mais, très utile pour le développement. Pour ce cas spécifique, nous allons simplement le supprimer des dépendances:
Si on le souhaite, on pourrait l'ajouter dans le groupe dev comme ceci:
Toutes ces dépendances sont ajoutées au fichier pyproject.toml qui ressemble à ceci:
[project]
name = "projet2"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"numpy>=2.4.4",
"polars>=1.40.1",
"ruff>=0.15.11",
"scipy>=1.17.1",
]
[dependency-groups]
dev = [
"ruff>=0.15.11",
]
Vous pouvez aussi éditer ce fichier pour ajuster les dépendances. Prenez le temps d'ouvrir le fichier pour changer les information génériques qui ont été créees lors de l'initialisation.
Le fichier pyproject.toml contient la liste des librairies que vous avez demandé,
le fichier uv.lock contient la liste des librairies qui ont été véritablement
installées.
Outils¶
Pour l'outil ruff, il risque d'être utilsé dans tous les projets alors
on peut l'installer comme outil et l'utiliser plus tard avec uvx.
jupiter est un autre outil qu'on ourrait vouloir utiliser. Naturellement, on
essaierait cette commande:
Plusieurs librairies seront installées mais, à la fin vous allez avoir ce message:
No executables are provided by package `jupyter`; removing tool
hint: An executable with the name `jupyter` is available via dependency `jupyter-core`.
Did you mean `uv tool install jupyter-core`?
Dans ce cas, effectivement, on aurait dû installer jupyter-core et non jupyter.
On peut voir la liste de nos outils installés comme ceci:
Comme il y aura de nouvelles version éventuellement, on peut mettre à jour tous en même temps avec cette commande (on peut aussi le faire pour un seul):
Exécution d'un programme¶
Maintenant que nous avons nos dépendances et notre code prêt, on souhaite l'exécuter. Pour cela, nous pouvons utiliser la commande:
Cette commande va activer l'environnement virtuel et s'assurer que les dépendances du fichier pyproject.toml sont à jour et exécuter le programme.
Lancer un interpréteur Python¶
Habituellement, si vous voulez un python interactif, vous utiliseriez la commande
python. Si vous faites cela, vous allez utiliser la version python qui est
dans votre liste de chemins d'exécution et vous n'aurez pas accès aux librairies
que vous avez installées.
Vous pouvez faire ceci plutôt:
Synchroniser l'environnement¶
Si vous clonez un projet existant ou si vous héritez d'un code déjà existant, vous pouvez faire ceci:
Cette commande lit uv.lock et installe exactement les mêmes versions de paquets.
Ceci va aider à reproductibilité.
Par défaut, cette commande va tout installer, incluant les outils devs s'il y en a. Si vous voulez seulement faire tourner le code, vous pouvez ajouter l'option de ne pas installer ces outils.
Mise à jour des dépendances¶
De temps à autre, il est nécessaire de mettre à jour nos dépendances.
Pour une librairie spécifique :
Pour tout mettre à jour:
Changement de version de python¶
Si au départ, votre projet a été créé avec la version 3.13 et que la version 3.14 est maintenant disponible, vous pouvez changer de version facilement.
On commence par installer la nouvelle version comme vu plus tôt
Ensuite, on change la version par défaut
On synchronise pour la nouvelle version
uv va recréer l'environnement avec Python 3.14 et va réinstaller toutes les
dépendances compatibles.
Si une librairie n'est pas compatible avec la nouvelle version, uv lock vous avertira.
Vous devrez alors :
- Attendre une mise à jour de la librairie
- Chercher une alternative
- Restreindre la version dans
pyproject.toml - Retourner à la version précédente de python en attendant
Finalement lorsque tout est correct,
changez votre fichier pyproject.toml pour indiquer que le projet exige
la nouvelle version. Changez simplement ceci dans le fichier:
et supprimez la version de python dont vous n'avez plus besoin. Évidemment si vous avez plus d'un projet, ne la supprimez pas tant que tous les projets n'ont pas été migrés à la dernière version.
Nettoyage de la cache¶
Lorsque vous avez terminé d'installer toutes les librairies dont vous avez besoin pour votre projet, vous devriez nettoyer les fichier téléchargés dans la cache pour libérer de l'espace dans votre compte.