Les variables d'environnement Python avec os.environ

1. À propos des variables d'environnement Python

Une variable d'environnement est une information associée à l'environnement dans lequel un programme est exécuté. Le système d'exploitation et les applications utilisent ces variables pour stocker différentes informations de configuration.

Parmi les variables d'environnement courantes, nous trouvons par exemple PATH, HOME sous Linux et macOS ou USERPROFILE sous Windows.

Python permet d'accéder aux variables d'environnement grâce au module os et plus particulièrement à l'objet os.environ.

Le programme suivant importe le module os et vérifie le type de os.environ.

Sortie possible :

os.environ se comporte de manière similaire à un dictionnaire Python : les noms des variables constituent les clés et leurs contenus constituent les valeurs.

2. Accéder aux variables d'environnement avec os.environ

L'objet os.environ contient les variables d'environnement accessibles au processus Python. Nous pouvons l'afficher directement afin d'observer son contenu.

Le programme suivant affiche les variables d'environnement disponibles au moment de son exécution.

Sortie possible :

Le contenu exact dépend du système d'exploitation, de l'utilisateur et de la configuration de l'ordinateur. Un ordinateur Windows n'affichera donc pas nécessairement les mêmes variables qu'un système Linux ou macOS.

3. Lire une variable d'environnement

Comme os.environ fonctionne de manière similaire à un dictionnaire, nous pouvons accéder à une variable en indiquant son nom entre crochets. Pour lire la variable PATH, nous pouvons utiliser os.environ["PATH"].

Le programme suivant récupère et affiche la valeur de la variable PATH.

Sortie possible sous Windows :

La variable PATH contient notamment une liste de dossiers dans lesquels le système recherche les programmes exécutables.

L'accès avec les crochets suppose toutefois que la variable existe. Si nous demandons une variable absente, Python déclenche une exception KeyError.

Sortie possible :

4. Utiliser os.environ.get()

La méthode os.environ.get() permet également de récupérer la valeur d'une variable d'environnement. Elle présente un avantage important : si la variable demandée n'existe pas, elle ne déclenche pas de KeyError.

Le programme suivant recherche une variable appelée MON_APPLICATION. Si celle-ci n'existe pas, get() renvoie la valeur None.

Sortie si la variable n'existe pas :

Nous pouvons également fournir une valeur par défaut comme deuxième argument de get(). Cette valeur sera utilisée lorsque la variable d'environnement demandée n'existe pas.

Sortie si MODE_APPLICATION n'existe pas :

Cette méthode est particulièrement pratique pour définir une configuration par défaut dans une application Python.

5. Créer et modifier une variable d'environnement

Il est possible de créer une variable d'environnement depuis Python en lui affectant une valeur dans os.environ. Le fonctionnement ressemble à l'ajout d'un élément dans un dictionnaire.

Le programme suivant crée une variable appelée MON_SITE puis affiche sa valeur.

Sortie :

Une variable existante peut être modifiée de la même manière. Il suffit d'affecter une nouvelle valeur à sa clé.

Sortie :

Les valeurs affectées à os.environ doivent être des chaînes de caractères. De plus, les modifications réalisées de cette manière concernent l'environnement du processus Python courant et sont transmises aux processus enfants créés ensuite ; elles ne créent pas automatiquement une variable permanente dans la configuration générale du système.

6. Supprimer une variable d'environnement

Une variable présente dans os.environ peut être supprimée avec l'instruction del, de la même manière qu'une entrée d'un dictionnaire.

Le programme suivant crée une variable MON_TEST, la supprime puis vérifie son existence.

Sortie :

La méthode pop() constitue une autre possibilité. Elle supprime la variable tout en permettant de récupérer sa valeur.

Sortie :

7. Parcourir les variables d'environnement

Puisque os.environ se comporte comme un dictionnaire, nous pouvons utiliser une boucle for pour parcourir les variables d'environnement disponibles.

Le programme suivant affiche uniquement le nom de chaque variable d'environnement.

Sortie possible :

Pour récupérer simultanément le nom et la valeur de chaque variable, nous pouvons utiliser la méthode items().

Sortie possible :

Les variables et les valeurs réellement affichées dépendent de la configuration de l'ordinateur sur lequel le programme est exécuté.

8. Tester l'existence d'une variable d'environnement

L'opérateur in permet de vérifier facilement si une variable existe dans os.environ. Cette vérification est utile avant d'accéder directement à une variable avec les crochets.

Le programme suivant vérifie si la variable PATH est disponible.

Sortie habituelle :

Nous pouvons appliquer exactement le même principe à une variable personnalisée utilisée par notre application.

Sortie possible :

9. Utiliser les variables d'environnement dans une application

Les variables d'environnement sont souvent utilisées pour fournir à une application des paramètres qui peuvent changer selon son environnement d'exécution. Il peut s'agir, par exemple, du mode d'exécution, du nom d'un serveur ou d'un chemin de stockage.

Le programme suivant récupère le mode de fonctionnement de l'application. Si la variable APP_MODE n'est pas définie, la valeur production est utilisée par défaut.

Sortie possible :

Les variables d'environnement sont également couramment utilisées pour fournir des informations sensibles telles que des clés API ou des paramètres de connexion sans les écrire directement dans le code source.

Le programme suivant récupère une clé depuis une variable API_KEY et vérifie uniquement sa présence sans afficher sa valeur.

Sortie possible :

Pour une information sensible, il est préférable de ne jamais afficher directement sa valeur dans la console, les journaux ou les messages d'erreur.

10. A retenir

L'objet os.environ du module os permet à un programme Python de consulter et de modifier son environnement d'exécution.

  • os.environ donne accès aux variables d'environnement.
  • os.environ["NOM"] permet de récupérer directement une variable existante.
  • os.environ.get("NOM") permet de récupérer une variable sans provoquer de KeyError lorsqu'elle est absente.
  • os.environ.get("NOM", "valeur") permet de définir une valeur par défaut.
  • os.environ["NOM"] = "valeur" permet de créer ou modifier une variable dans l'environnement du processus.
  • del os.environ["NOM"] permet de supprimer une variable de cet environnement.
  • os.environ.items() permet de parcourir les noms et les valeurs.
  • Les variables d'environnement sont utiles pour configurer une application sans placer tous ses paramètres directement dans le code.

Le programme suivant résume une utilisation courante de os.environ avec une valeur par défaut.

Sortie possible :

 


 


Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/


Leave a Reply

Your email address will not be published. Required fields are marked *