Comment déployer des environnements Python sous Windows 10 avec Conda
Nous prendrons les exemples concrets de pyBERT et pyGIMLi et montrerons comment déployer les outils de développement Spyder, Pycharm et Jupyter Lab. Deux approches seront proposées :
- Utilisation du Python de Anaconda pour Windows et d'un émulateur de lignes de commandes Bash (MSYS2 ou Git Bash),
- Utilisation du Python de Anaconda pour Linux dans WSL (le sous système Windows pour Linux) -> sur une autre page du Wiki
La première méthode est aujourd'hui recommandée pour SAGE. L'utilisation de WSL peut surtout s'avérer utile pour des utilisations avancées nécessitant une meilleure compatibilité Linux.
Les icones suivantes seront utilisées :
-
‼️ signale une difficulté, un piège ou un point d'attention particulier. -
💡 signale une astuce, une remarque, ou une bonne pratique. -
🎉 signale une (supposée) réussite. -
📖 signale les sources utilisées.
Sommaire
- Comment déployer des environnements Python sous Windows 10 avec Conda
Contexte et objectifs
Python est un langage de programation utilisé pour le développement dans un contexte de calcul scientifique, mais aussi par nombre de logiciels classiques. On se trouve souvent avec plusieurs versions de Python sur son ordinateur pour satisfaire les besoins -parfois incompatibles- de différentes applications.
La gestion des versions de Python et des librairies installées peut s'avérer ardues sans quelques bonnes pratiques.Ce wiki a pour but de documenter l'installation de Python pour Windows 10 via la distribution Anaconda. Nous détaillons comment gérer les versions de librairies à l'aide d'environnements Conda et comment ces environnements s'intègrent dans les principaux outils de développement (IDE) Python.
Utiliser Python Anaconda pour Windows
Il est possible d'installer Anaconda nativement sur Windows et de gérer les environnement python avec la console conda et le navigateur anaconda. Cependant certaines bibliothèques python (mettre des exemples) ont des mauvaises performances sur windows voir sont partiellement supportées.
Installation d'Anaconda pour Windows
Télécharger l'installeur graphique et suivre les instruction, garder les réglages par défaut, en particulier :
Une fois l'installation complète, anaconda
dans votre menu vous trouverez 3 applications :
- Anaconda Navigator permet de gérer vos environnement et d'installer des applications graphiquement
- Anaconda prompt permet la même chose en ligne de commande (plus rapide, plus puissant mais plus complexe à utiliser)
Installation de pyBERT et pyGIMli dans des environnements virtuels
- Lancer
Anaconda Navigator
- Allez dans l'onglet environement et cliquer
create
en bas à droite - Le nommer
pybert
et choisir python 3.7 - Lancer le terminal Conda dans cet environement
- Entrer la commande suivante et répondre oui (
y
) aux questions
conda install -c gimli -c conda-forge pybert
- Tester
Utilisation du navigateur graphique Anaconda
Lancer Anaconda Navigator puis aller dans l'onglet Environements
:
Vous voyez alors tous vos environnement, vous pouvez choisir pybert
cliquer sur la flèche puis Open in Terminal
pour ouvrir un terminal depuis lequel vous pourrez lancer pybert
ou installer d'autres paquet avec conda
par exemple.
Vous pouvez aussi installer des applications directement depuis le navigateur anaconda dans vos environnement depuis l'onglet home.
Par exemple si vous voulez avoir spyder
dans votre environnement pybert
:
- Lancer Anaconda Navigator
- Aller sur l'onglet Home
- Choisir l’environnement désiré dans le panneau du milieu
Applications on
(icipybert
) - Chercher l'application voulue (ici `spyder)
- Cliquer sur le bouton install
- Cliquer sur le bouton
Launch
pour avoir votre application qui tourne dans l'environement pybert
Utiliser conda dans un shell POSIX (gitbash ou MSYS2)
bert
. Pour cela vous avez besoin d'un shell POSIX
Nous recommandons d'utiliser gitbash qui est basé sur MSYS2, les réglages présentés ici devraient fonctionner aussi sur ce dernier.
- Télécharger gitbash
- Lancer l'installer et suivre les choix par défaut
- À l'écran de choix de l'éditeur par en choisir un que vous connaissez (ne mettez pas vim si vous ne connaissez pas)
- Lancer git bash
- Tapper la commande
conda
- Si le terminal indique
command not found
, entrer la commande suivante en replaçant<user>
par votre nom d'utilisateur windows :
echo '. C:/Users/<user>/Anaconda3/etc/profile.d/conda.sh' >> .bashrc
- Dites à Git Bash où se trouve le Python sur Windows avec la commande suivante :
echo "alias python='winpty python.exe'" >> .bashrc
- Quitter et relancer git bash puis tester :
Applications capable de changer d’environnement
Spyder
Spyder est désormais capable de changer d’environnement Conda de manière dynamique à condition de faire un peu de configuration au préalable.
Cette manipulation n'est fonctionnelle que pour des environnements python 3.
- Installer Spyder dans l’environnement
Base
- Lancer conda prompt
- Répéter les étapes suivantes pour tous les environnements que vous voulez rendre accessible à Spyder
- Lancer Spyder dans l’environnement base
- Aller dans
Tools > Preferences > Python Interpreter > Use the following interpreter
et coller le chemin copié en 3. - Relancer la console ipython
Pour changer d’environnement, il suffit d'éditer le chemin de l'étape 5 en remplaçant le nom de l’environnement par exemple remplacer C:\Users\User\anaconda3\envs\pybert\python.exe
par C:\Users\User\anaconda3\envs\test\python.exe
et relancer la console ipython
Erreurs connues
Si vous obtenez cette erreur dans la console python :
- Mettez à jour Spyder vers 4.1.0 ou plus récent
- Si la mise à jour via l'interface conda n'est pas possible faire dans un prompt conda base
conda update --all
- Relancer Spyder
Jupyterlab
Pour pouvoir utiliser vos environnements dans jupyterlab il faut ajouter un kernel ipython dans l’environnement Lancer Anaconda prompt
Dans l'environement base faire (une seule fois) :
conda install -c conda-forge nb_conda_kernels
Puis pour chaque environement (ici pybert
conda activate pybert
conda install ipykernel
ipython kernel install --user --name=pybert
Lancer Jupyterlab depuis le menu home de Anaconda navigateur dans l'enviroment base
Au démarrage JupyterLab vous demandera de choisir un kernel, choisissez pybert
pour avoir accès à votre environnement :
Vous pouvez a tout moment changer de kernel en cliquant en haut à droite sur le nom du kernel Python [conda env:pybert]
Pycharm
- Télécharger pycharm
- Installer pycharm en suivant les recommendations par défaut
- Lancer pycharm et suivre les instruction
- Créer un nouveau projet
- Au choix de l’environnement choisir : "Interpréteur existant" et cliquer sur les points de suspensions
- Choisir les environnements conda
- Choisir l’environnement voulu dans la liste et cliquer sur create
- Cliquer sur le nom de l’environnement conda en bas a droite
- Puis réglages de l’interpréteur
- Changer l’environnement dans la fenêtre qui s'est ouverte
Aller dans Ficher > Settings
puis Tools > Terminal
et mettre Shell path à C:\Program Files\Git\bin\bash.exe
:
Vous pourrez alors lancer bert
depuis le temrinal pycharm
conda activate pybert
au début de chaque session