--name finistrbis python=3.11 pip
conda create
conda activate finistrbis-r requirements.txt pip install
Bien démarrer avec Python
Lorsque l’on utilise Python, une bonne pratique consiste à créer un environnement spécifique par projet. L’environnement contient la version de Python que l’on souhaite utiliser ainsi que les packages/modules utiles au projet. Cette façon de faire permet de faire coexister différentes versions de python ou de packages au sein du même ordinateur. Cette pratique n’est pas spécifique à Python, on pourrait imaginer créer des environnements pour utiliser des versions différentes de R. Si le programme ou la librairie n’est pas installée dans l’environnement mais est disponible dans l’installation globale de la machine, c’est cette version globale qui sera utilisée. Il faut donc bien vérifier ce qui est dispo dans l’environnement et globalement.
Nous avons exploré deux manières de gérer les environnements soit avec conda
soit avec virtual env
. Nous avons testé sous Linux et sous Windows.
Installation python et problèmes potentiels
On crée un lien symbolique pour que python 3
soit le python
par défaut en utilisant les instructions suivantes:
sudo ln -sf /usr/bin/python3 /usr/bin/python
On fait de même pour pip
qui est un des installateurs de modules/ packages.
sudo ln -sf /usr/bin/pip3 /usr/bin/pip
Créer un environnement avec conda sous Linux
Cette partie suppose que la commande conda
est disponible (installée avec anaconda ou miniconda)
La liste des environnement disponible est donnée par
conda env list
Vous devez avoir au moins l’environnement de base
dans cette liste. Vous avez aussi ainsi accès à l’adresse où vous trouverez vos environnements.
On souhaite créer un nouvel environnement nommé finistr contenant uniquement python et pip.
Il suffit de lancer la commande conda create --name finistr python=3.11 pip
En listant les environnements disponibles, vous devez voir l’environnement finistr créé.
conda env list
Il est très important d’installer pip
en meme temps, sinon c’est le pip global du systeme qui est utilisé et toutes les commades pip install
lancées depuis l’environnement feront en fait des installations globales et non locales à l’environnement (plus de détails ici )
Pour utiliser cette installation, il faut activer l’environnement
conda activate finistr
On peut maintenant installer les packages de son choix avec des commandes type conda install
ou pip install
Par exemple pip install numpy
Pour avoir la liste des packages installés dans l’environnemnet courant conda list
On quitte l’environnement avec la commande conda deactivate
. Quand vous reviendrez à votre environnement (conda activate
) vous aurez ces packages installés.
Il est possible de fournir une liste de packages à installer dans l’environnement sous forme d’un fichier txt.
Le fichier requirement.txt
a la forme suivante
jupyter==1.0.0
numpy==2.1.0
Autres commandes
Il est possible de supprimer un environnement avec la commande
--name finistrbis --all conda remove
La liste des commandes conda est disponible dans la cheatsheet conda
Installation et création d’environnement avec Windows
Nous présentons ici 3 étapes importantes pour l’utilisation de Python sous Windows
l’installation d’une version de Python,
l’utilisation d’un éditeur de code
la création et l’utilisation d’un environnement Python pour programmer.
Différentes approches existent pour réaliser chacune de ces tâches, nous présentons ici une approche pour chaque.
Installation de Python
Stratégie Python est nativement disponible sous Linux. Une possibilité pour utiliser Python sous Windows est donc d’installer un sous-environnement Linux via WSL2 (Windows subsystem for linux), et d’utiliser la version de Python qui vient avec.
Installer WSL2
L’installation de WSL2 se fait via la commande (terminal PowerShell) :
wsl --install
Après redémarrage, on peut vérifier quelle version de linux est installée :
wsl -l -v
A noter qu’il est possible de préciser l’installation Linux que l’on veut installer :
wsl --instal -d <Distribution>
Dans l’exemple qui suit nous avons utilisé Ubuntu. Il est maintenant possible de lancer un terminal Linux avec la commande
start ubuntu.exe
et d’aller vérifier la version de Python disponible.
Python
On se place maintenant dans le terminal Ubuntu. Comme précédemment mentionné Python est directement disponible sous Linux, ce qui se vérifie de la manière suivante :
which python
python --version
Nous allons par la suite utiliser deux fonctionnalités de python : l’installation de package via pip (“python install package”) et la création d’environnements virtuels via virtualenv. Ces deux fonctionnalités sont normalement directement disponibles, si ce n’est pas le cas l’installation se fait via
sudo apt-get update
sudo apt install python3-pip
pip install virtualenv
Il est parfois nécessaire de créer un alias python pour python3 et pip pour pip3:
source ~/.bashrc
alias python=python3
alias pip=pip3
Alternativement on peut créer un lien symbolique entre pip3 et pip :
sudo ln -s /usr/bin/python3 /usr/bin/python
sudo ln -s /usr/bin/pip3 /usr/bin/pip
Une fois la vérification de python et des fonctionnalités pip et virtualenv faite, on peut interagir avec python (créer des environnements, coder, tester, etc.) via le terminal de l’éditeur de code VSC, et nous n’aurons plus besoin ni de l’invite de commande Windows, ni du terminal WSL.
Utilisation de VSC
Préalable : installer VSCode (sous Windows) !
Choisir un environnement distant
A l’ouverture de VSC, la première étape consiste à préciser que l’on souhaite travailler dans le sous-environnement Linux via WSL (où se trouve python…).
Pour cela, il faut - configurer VSC en installant le module d’extension “WSL” de VSC (via l’icone d’installation d’extension) - ouvrir un environnement distant via l’icone “Open a Remote Window” en bas de la fenêtre VSC, et choisir “Connect to WSL”. Le sous-environnement de travail est maintenant “WSL:Ubuntu”
Une fois dans cet environnement, il est conseillé d’installer le module d’extension “Python”.
Ouvrir un terminal
Une fois l’environnement de travail défini, on peut ouvrir un terminal. Le terminal qui s’ouvre dans VSC est l’équivalent d’un terminal WSL. On peut donc executer
which python
python --version
et vérifier que l’on obtient la même version que précédemment.
Création d’un environnement python
Dans le terminal WSL ouvert dans VSC, on peut maintenant créer un environnement python via la commande
python -m venv Chemin/NomEnv
ce qui crée un répertoire “NomEnv” au Chemin indiqué (si besoin, pour supprimer l’env : rm -rf NomEnv
).
Cet environnement peut être activé comme suit :
source Chemin/NomEnv/bin/activate
ou alternativement
. Chemin/NomEnv/bin/activate
Note L’activation de l’environnement se traduit par un changement dans le prompteur, qui mentionne maintenant “(NomEnv)” devant le nom d’utilisateur de la session.
L’environnement va définir la version de Python ainsi que les packages/modules que l’on souhaite utiliser pour le projet. Par défaut la version de python de l’environnement nouvellement créé est la version de python utilisée pour créer l’environnement (ce que l’on peut vérifier avec python --version
). Il reste donc à installer les packages nécessaires au projet, ce qui se fait avec pip. Un exemple avec le package numpy:
pip install numpy
Il est possible de lister à tout moment les packages déjà inclus dans un projet avec l’instruction pip list
Une fois l’environnement configuré, on “sort” de l’environnement avec l’instruction deactivate
.
Programmer, exécuter… dans un environnement python
L’environnement NomEnv étant maintenant disponible, on peut se placer dedans pour travailler et écrire nos premières lignes de code. Il suffit pour cela d’ouvrir/créer un fichier python (toujours dans VSC).
Execution en ligne de commande
Tout est prêt mais l’exécution du code ligne à ligne n’est pas directement accessible sur python. Pour y avoir accès il suffit d’installer le package ipython dans l’environnement python (cf paragraphe précédent) d’une part, et d’installer l’extension “iPython for VS Code” dans VSC. Une fois ces deux étapes réalisées, l’exécution de la commande iPython
dans le terminal à l’exécution en ligne.
REMARQUE (fonctionne sur toutes les distributions en théorie, mais uniquement testé sur MacOS): Afin de retrouver la fonctionnalité d’exécution d’une ligne de code avec shift + enter
dans la console de R studio, il est nécéssaire de modifier le fichier settings.json
de VSC (en mode WSL). Pour cela, taper ctrl + shift + P
et rechercher Open User Settings (JSON)
. Rajouter à la suite des options existantes:
"python.terminal.launchArgs": [
"-m",
"IPython",
"--no-autoindent"
],
Utiliser un environnement de développement agréable pour un utilisateur de R
Avec Visual Studio Code
ipython
Avec Positron
Le nouvel IDE Positron (disponible en version beta) semble avoir des avantages intéressants pour les gens qui aiment Rstudio mais veulent faire du python. Notamment, il est possible
de choisir facilement son environnement (menu déroulant en haut à droite) et
d’utiliser la commande Ctr+entr pour éxécuter un code Python ligne à ligne comme on le fera pour un code R dans Rstudio.