Outils pour utilisateurs

Outils du site


dev:python:core:variables_environnement

Python : Gestion des variables d'environnement

Plusieurs solutions pour définir des variables d'environnement en Python :

  1. Créer un fichier .env ;
  2. Éditer le fichier activate de l'environnement virtuel Python ;
  3. Utiliser le Dockerfile si le projet s'appuie sur Docker.

Le fichier .env

Ajouter un fichier .env à la racine du projet :

.env
# Environnement
 
# Paquetage flask
FLASK_APP="gcomp"
Pour que les fichiers .env soient chargés, le paquetage python-dotenv doit être installé.

Édition du script activate

Insérer l'export après la modification du PATH dans le fichier ./bin/activate de l'environnement virtuel du projet :

 ...
 48 
 49 _OLD_VIRTUAL_PATH="$PATH"
 50 PATH="$VIRTUAL_ENV/"bin":$PATH"
 51 export PATH
 52 
 53 export FLASK_APP="gcomp"
 ...

Éditer également la fonction deactivate en début de fichier pour retirer la variable de l'environnement lorsque l'environnement virtuel est déchargé :

  1 # This file must be used with "source bin/activate" *from bash*
  2 # You cannot run it directly
  3 
  4 deactivate () {
  5     # reset old environment variables
  6     unset FLASK_APP
  7     if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
  ...

Vérifier le bon comportement du script à l'activation puis à la désactivation de l’environnement virtuel Python :

# La variable est absente de l’environnement utilisateur initial
printenv FLASK_APP
 
# On charge le venv, la variable doit exister
source .venv/bin/activate
printenv FLASK_APP
 
# On décharge le venv, la variable ne doit plus exister
deactivate 
printenv FLASK_APP
Cette solution reste locale. En cas de déploiement sur une autre machine, en général l'environnement virtuel est recréé.

Utiliser le Dockerfile

Si Docker est utilisé comme outils de déploiement du projet, les variables d'environnement peuvent être définies dans le Dockerfile. Notons que ces variables persisteront à l'exécution du conteneur

Dockerfile
#Dockerfile
FROM an_image
...
 
ENV FLASK_APP="gcomp"

Accéder aux variables d'environnement

Depuis le script / module Python, on accède aux variables d'environnement via le module os

import os
os.environ['FLASK_APP']

Références

dev/python/core/variables_environnement.txt · Dernière modification : 2025/07/20 15:03 de yoann