Ce mini-guide sert à donner des bases pour installer des paquets via pip (le gestionnaire de paquets officiel de Python) sans casser Anaconda (ou plus spécifiquement, votre environnement de base d'Anaconda).
Il est écrit car je me rends compte qu'en M2, avec certains cours qui demandent des paquets spécifiques, on a tendance à utiliser pip pour installer ces paquets, comme recommandé dans leurs documentations.
Or utiliser pip en conjonction avec Anaconda n'est pas conseillé car il y a alors deux gestionnaires de paquets qui s'ignorent l'un l'autre et cela peut créer des soucis de versions.
De plus, l'expérience montre qu'Anaconda est un peu limité en ce qui concerne l'installation de Tensorflow pour le cours de Deep learning (en 2025 en tout cas, on a une version qui n'est pas à jour, et une installation interminable).
Si vous avez déjà installé Anaconda, vous avez accès à Jupyter Lab, c'est tout ce qu'on veut et vous pouvez directement passer à la section sur Pipenv. Sinon je donne aussi les instructions pour installer Python et Jupyter Lab sans nécessiter Anaconda (c'est plus léger mais vous n'aurez pas d'icône de lancement de Jupyter, par exemple).
Si vous êtes sur Ubuntu / Mint / Debian, les lignes de commandes suivantes installent d'abord Python et pipx sur votre ordinateur, puis on utilise pipx pour installer Jupyter Lab en tant qu'exécutable.
sudo apt install python3 python3-pip pipx
pipx install jupyterlab
pipx inject --include-apps jupyterlab notebook jupyter_client
Vous pourrez ensuite (pas maintenant, ce n'est pas fini) lancer Jupyter Lab en
exécutant jupyter-lab depuis le terminal. La troisième ligne permet aussi de
lancer la version "notebook" de Jupyter avec jupyter-notebook, et de gérer les
"kernels" disponibles dans Jupyter (voir plus bas).
Si vous n'êtes pas sur Ubuntu / Mint / Debian, j'imagine que vous savez utiliser votre gestionnaire de paquets, et Jupyter Lab est peut-être directement installable via celui-ci (pas le cas sous Debian).
Utilisez l'installateur le plus récent pour Windows ou macOS, puis ouvrez un terminal (cherchez Windows Powershell, ou Terminal) et lancez la commande:
pip install jupyterlab
Vous pourrez ensuite (pas maintenant, ce n'est pas fini) lancer Jupyter Lab en
exécutant jupyter lab depuis le terminal. La version "Notebook" de Jupyter
devrait elle aussi être installée, on peut la lancer avec jupyter notebook.
Pipenv permet de gérer des environnements Python facilement. Un environnement est une installation complète de Python et d'un ensemble de paquets choisis, dans un répertoire spécifique. De manière générale, cette installation n'interagit pas avec le reste de votre ordinateur, sauf quand vous le voulez: il faut par exemple activer un environnement pour utiliser les paquets spécifiques, etc. Une autre façon (que l'on décrit plus bas) d'utiliser un environnement spécifique dans Jupyter passe par l'installation d'un kernel.
Si vous avez installé Anaconda, vous avez déjà un environnement d'installé sur
votre ordinateur (l'environnement de base selon Anaconda). La commande conda
permet de gérer les environnements Anaconda, mais ici on va voir comment créer
et utiliser un environnement avec Pipenv (en particulier on va pouvoir se créer
un environnement dédié au Deep learning en installant Tensorflow).
Si vous avez utilisé les instructions ci-dessus pour installer Python et Jupyter, je vous déconseille d'installer quoi que ce soit directement avec pip. À la place, vous pouvez créer un environnement de base avec les instructions qui suivent.
Si vous êtes sur Ubuntu / Mint / Debian:
sudo apt install pipenv
Sinon vous pouvez sans doute suivre les instructions pour Windows ou macOS.
Ouvrez un terminal (cherchez Windows Powershell, ou Terminal) et lancez la commande:
pip install --user pipenv
On va maintenant créer un environnement et faire en sorte de pouvoir l'utiliser
depuis Jupyter. Ici, on utilise l'exemple de créer un environnement spécifique
au Deep learning, qui contiendra en particulier Tensorflow, et que l'on nommera
deep_learning.
Créez d'abord dans un dossier qui contiendra les informations nécessaires à
Pipenv pour gérer votre environnement. Par exemple, vous pouvez créer un
dossier Python_envs dans votre répertoire personnel, puis un sous-dossier
du nom souhaité pour l'environnement, ici deep_learning.
(Important) Placez-vous dans ce dossier depuis un terminal.
Rappelez-vous, on se déplace avec la commande cd (oui, même sur Windows ou
macOS).
Création de l'environnement, avec Numpy, Matplotlib et Tensorflow. On
rajoute un paquet ipykernel qui servira à faire le lien avec Jupyter dans
l'étape suivante.
pipenv install numpy matplotlib tensorflow ipykernel
Création du kernel Jupyter lié à cet environnement.
pipenv run ipython kernel install --user --name deep_learning --display-name "Python (deep_learning)"
Voilà, maintenant vous pouvez lancer Jupyter, et créer un nouveau notebook en
choisissant le kernel qui s'appelle Python (deep_learning). Si plus tard,
vous avez besoin de créer un nouvel environnement contenant des paquets
spécifiques, vous pouvez répéter les étapes ci-dessus en adaptant les noms des
paquets et de l'environnement.
Vous pouvez aussi directement installer de nouveaux paquets dans un environnement existant. Pour faire cela, placez-vous dans le dossier correspondant à l'environnement existant et lancez:
pipenv install [noms des paquets souhaités]
Un défaut: plus vous avez de paquets, plus vous avez de risques de non-compatibilité avec de nouveaux paquets en fonction des versions installées. Parfois ça plantera, et la solution est probablement de créer un nouvel environnement.
Pour finir: vous pouvez vouloir désinstaller un kernel Jupyter, si vous n'utilisez plus un ancien environnement par exemple, et que la liste de vos kernels est trop longue. Pour cela, ouvrez un terminal, puis lancez:
jupyter-kernelspec uninstall deep_learning
(ou bien remplacez deep_learning par le nom du kernel à supprimer). Si vous
voulez carrément supprimer un environnement (et tous les paquets installés
avec, qui prennent de la place sur votre ordinateur), déplacez-vous dans le
dossier de l'environnement, puis lancez pipenv --rm. Enfin, vous pouvez
supprimer le dossier en question (attention, vous avez peut-être créé des
documents de travail dans ce dossier: vérifiez d'abord !).
pyenv permet d'installer de manière indépendante différentes versions de Python, pour votre usage de développement (n'interfère pas avec l'éventuelle version de Python utilisé par votre système). L'intérêt: si vous faites du développement de manière un peu sérieuse avec plusieurs projets en paralèlle, passer d'un projet à un autre nécessitera peut-être de changer de version de Python, pour des raisons de compatibilité. En effet, s'assurer que le code d'un projet fonctionne comme attendu avec la nouvelle version de Python prend du temps, d'autant plus pour un gros projet avec de nombreuses dépendances. Bref, ça n'est pas toujours prioritaire (ou possible immédiatement) et inévitablement vous devrez gérer cette question.
Heureusement, pyenv permet ça très facilement, et cerise sur le gâteau, Pipenv reconnaît pyenv et fonctionne avec. C'est-à-dire qu'après l'installation des deux outils, si l'on veut démarrer un projet avec une version précise de Python:
pipenv --python 3.12 install numpy matplotlib
alors Pipenv cherchera automatiquement une version de Python 3.12 sur votre ordinateur et vous proposera de l'installer via pyenv si nécessaire. En gros, après son installation, vous n'avez presque pas à savoir comment pyenv fonctionne (enfin c'est un mauvais conseil: allez voir la documentation pour voir les possibilités de cet outil).
NB: conda permet aussi d'installer différentes versions de Python sur votre ordinateur, mais elles seront liées à des environnements conda. Je ne sais pas si Pipenv permet d'utiliser ces versions dans ses projets (enfin sans doute que si, mais je ne sais pas si c'est pratique !).