Aller au contenu principal

Initier un projet Python

Virtual Environment

Introduction

La création d'un 'Virtual Environment' Python va nous permettre de travailler dans un contexte d'exécution ou le programme aura sa propre version de python mais surtout uniquement les modules nécessaires pour son exécution et ce sans polluer les autres projets. Le tout sera stocké dans un sous répertoire du projet : .venv/. Pour aller plus loin sur la notion de 'Virtual Environment' ou venv, cf la doc officiel.

Création de venv sous Visual Studio Code

L'extension Python fournit tous les outils nécessaires.

  • Command Palette (Ctrl+Shift+P) et lancer la commande Python: Create Environment
  • Choisir Venv
  • Les différentes versions de python présentes vous sont proposées en choix : à vous de choisir selon votre projet (à défaut la version recommandée).

Si vous faites cette opération sur un projet déjà fourni, cette commande va aussi créer un fichier requirements.txt (listant les packages requis pour le projet), ainsi qu'un fichier .gitignore incluant le répertoire .venv afin de ne pas charger inutilement votre repo. Dans le cas contraire, pas de panique, on va voir çà un peu plus bas.

Création de venv en ligne de commande

Dans le répertoire du projet, simplement lancer la commande suivante :

python -m venv .venv

Non, rien, c'est tout.

Activation de l'environnement

Dans un terminal

Il suffit d'exécuter le script présent dans le répertoire .venv :

.venv\Scripts\activate.bat

Dans VisualStudioCode

Même si cela n'est pas explicitement montré, l'environnement est automatiquement chargé par le plugin python. Il n'y a rien à faire. Plus de détails sur le pourquoi du comment peuvent être trouvé ici : https://github.com/microsoft/vscode-python/wiki/Activate-Environments-in-Terminal-Using-Environment-Variables

Requirements.txt

Introduction

On a vu précédemment qu'on a un environnement dédié à notre projet où on peut installer plein de modules afin de coder le meilleur outil du monde. Mais que se passe-t-il quand on récupère le code sur une autre machine, sans le répertoire .venv/ bien souvent trop volumineux pour être intégré dans votre repository de code préféré ? C'est là qu'arrive ce petit fichier requirements.txt. Il va contenir la liste des modules nécessaires au code. On va voir comment le générer et aussi comment l'utiliser pour installer les modules requis.

Génération du requirements.txt

Il existe plusieurs méthodes pour réaliser cette tâche. Je ne prétends bien sûr pas être exhaustif (manquerais plus que ca), je vais me contenter de vous en présenter deux.

pip freeze

pip freeze > requirements.txt

C'est la méthode qui utilise le gestionnaire de package python. C'est souvent la première méthode qu'on trouve. Avantage : fonctionne et ne nécessite pas d'installation supplémentaire. Inconvénient :

  • Produit une très longue liste de packages. Ceci est due à son fonctionnement. La commande va ramasser l'ensemble des packages mais aussi toutes les dépendances installées dans l'environnement Python actif, que le package soit utilisé ou non dans le code.
  • Liste uniquement les packages installés avec pip. Pour aller plus loin : la doc officiel

pigar

pip install pigar
pigar generate

Simple et efficace. La liste est courte car l'outil scan votre code en cherchant les includes. Il ne prends donc que ce qui est strictement nécessaire. Il regarde ensuite dans l'installation locale à quel package (et version) cela correspond pour mettre le résultat dans le fichier requirements.txt. Si vous avez besoin d'aller plus loin ou envie d'en savoir plus, comme toujours, le site officiel.

Installation des packages

Quel que soit la méthode de génération du fichier, la commande reste la même.

pip install -r requirements.txt