Python

Auteur·rice
Date de publication

10 janvier 2024

Modifié

21 novembre 2024

Pip & Venv

Avec cette méthode, on peut se contenter du python3 du système d’exploitation. Dans tous les cas, ne jamais installer les packages dans l’environnement global, toujours dans des environnements virtuels isolés du reste du système d’exploitation.

  • Créer un nouveau repo github
  • Le cloner avec git clone https://...
  • Créer les sous-dossiers suivants : data, src, notebooks
  • Créer un environnement virtuel .venv, à la racine du dossier.
  • Activer l’environnement virtuel, installer les packages nécessaires.
  • Créer un fichier requirements.txt avec pip freeze > requirements.txt
  • Créer un fichier .gitignore, ignorer data/ et .venv/.
  • add, commit & push

Conda (recommandé)

  • Installer Miniconda (voir Quick command line install, c’est l’affaire de 4 ou 5 commandes).
  • Créer un environnement virtuel avec conda create
Avertissement

Hors connexion, la commande conda create va échouer, à moins d’utiliser la commande --offline. En effet, même si on ne spécifie pas de paquet à installer, conda va “consulter” les channels par défaut.

Note

Par défaut, les environnement virtuels conda sont centralisés dans le dossier ~/miniconda3. C’est bien ainsi.

  • Activer cet environnement avec conda activate
  • Installer les packages nécessaires, souvent avec le chanel conda-forge : conda install -c conda-forge XXX
Astuce

Il y a deux approches possibles pour la création d’un environnement conda et l’installation des paquets :

  1. installer les paquets directement avec conda create
  2. avec conda create, conda activate, conda install.

Les deux approches sont valides. Dans un cas : conda create -n sklearn-env -c conda-forge scikit-learn, dans l’autre conda create -n sklearn-env conda activate sklearn-env conda install -c conda-forge scikit-learn. Petite préférence pour la première approche pour des environnements simples avec quelques packages définis à l’avance (cela permet de gérer dès le départ les conflits de dépendance). Préférence évidente pour la deuxième dans le cas où les paquets sont ajoutés de manière incrémentale.

Jupyter

Astuce

Installer Jupyter notebook ou Jupyter Lab dans un environnement à part (jup par exemple), créé soit avec conda, soit avec venv.

Pour ajouter utiliser un environnement virtuel conda (par exemple sklearn-env) comme kernel jupyter :

  • conda activate sklearn-env
  • conda install -c conda-forge ipykernel
  • python -m ipykernel install --user --name=sklearn-env --display-name "Python (sklearn-env)"

Lancer jupyter notebook et sélectionner le kernel correspondant.

Note

Les kernels jupyter sont stockés dans ~/.locale/share/jupyter/kernels sous la forme d’un fichier .json. Si on supprime un environnement virtuel et qu’on ne veut plus qu’il apparaisse dans la page de sélection des kernels (pour Jupyterlab) ou le menu déroulant (pour Jupyter notebook), c’est ce dossier qu’il faut supprimer.

Conda & pip

  • Chercher d’abord s’il est possible d’installer un package avec conda, notamment via conda-forge.
  • S’il n’est pas disponible, alors l’installer avec pip.
  • Éviter d’installer un même package une fois avec conda, un autre avec pip, cela risque de créer des problèmes de dépendance.
  • Pour savoir quels packages ont été crées avec conda, et quels autres avec pip, il suffit d’appeler conda list qui donne le chanel d’installation.

Divers

  • Jupyter lab doesn’t come with an icon, I have one because I installed Jupyter Desktop and then uninstalled it. It created a Desktop configuration file in ~/.local/share/applications and added and icon to ~/local/share/icons/…
  • Exemple de conflit de dépendance si on ne crée pas d’environnement virtuel : Harlequin & Jupyter.