Bien démarrer avec Python

Auteur·rice·s

Sophie Donnet

Marie-Pierre Etienne

Tristan Mary-Huard

Francois Victor

Emily Walker

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.

conda create --name finistrbis python=3.11 pip 
conda activate finistrbis
pip install -r requirements.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

conda remove --name finistrbis --all

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.