Maison > Article > développement back-end > Accéder à la valeur des variables d'environnement en Python
Les variables d'environnement en Python sont des valeurs de configuration stockées en dehors du code et utilisées par l'application au moment de l'exécution. Ces variables existent sous forme de paires clé-valeur, tout comme les dictionnaires en Python. Ces variables peuvent être définies, mises à jour ou supprimées dans le fichier de configuration sans modifier le code de l'application. Python fournit un certain nombre de fonctions du système d'exploitation pour accéder aux variables d'environnement sans affecter le code de l'application. Dans cet article, nous apprendrons comment accéder aux variables d'environnement en Python.
Pour interagir avec le système d'exploitation, python dispose d'un module os à l'aide duquel vous pouvez interagir avec le système d'exploitation et accéder aux variables d'environnement. Le dictionnaire os.environ contient toutes les variables d'environnement dans des paires clé-valeur.
Nous pouvons utiliser os.environ pour accéder au chemin d'accès aux variables d'environnement ainsi qu'à toute nouvelle valeur de variable d'environnement.
import os # get the value of the PATH environment variable path = os.environ['PATH'] print(path) # set a new environment variable os.environ['MY_VAR'] = 'my value' # get the value of the new environment variable my_var = os.environ['MY_VAR'] print(my_var)
/opt/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/tools/node/bin:/tools/google-cloud-sdk/bin my value
Le code génère une erreur critique si la variable d'environnement n'est pas trouvée. Pour éviter de telles erreurs, nous pouvons utiliser la fonction os.environ.get() pour accéder aux variables d'environnement et éviter les erreurs de clé lorsque la clé n'est pas trouvée.
import os # get the value of the MY_VAR environment variable, or return None my_var = os.environ.get('MY_VAR') print(my_var)
None
Dans l'industrie, nous utilisons différents environnements pour les bases de code de développement, de préparation et de production. Il existe un fichier de variables d'environnement distinct pour chaque environnement. Dotenv est une bibliothèque tierce permettant d'accéder aux variables d'environnement dans plusieurs environnements.
Pour utiliser le module dotenv, nous devons d'abord installer python-dotenv via la commande suivante
pip install python-dotenv
Pip est un gestionnaire de packages Python. Pip install python-dotenv Installe le module dotenv dans le système de fichiers local.
Après avoir installé le module python-dotenv, nous devons créer un fichier .env dans le répertoire racine du projet et y créer des valeurs d'environnement sous forme de paires clé-valeur.
MY_KEY_VAR=my_value
My_KEY_VAR est la clé de la variable d'environnement, et my_value est la valeur correspondante.
Maintenant, nous pouvons charger des fichiers .env dans notre code Python partout où cela est nécessaire à l'aide de la fonction dotenv.load_dotenv(), qui lit le fichier .env et charge toutes les variables d'environnement dans le module os.environ.
from dotenv import load_dotenv import os # load the environment variables from the .env file load_dotenv() # get the value of the MY_VAR environment variable my_var = os.environ['MY_KEY_VAR'] print(my_var)
my_value
argparse est une bibliothèque standard en Python pour analyser les arguments de ligne de commande. Nous pouvons transmettre des variables d'environnement comme arguments de ligne de commande en Python à l'aide de la bibliothèque argparse.
Définissez un argument de ligne de commande pour chaque variable d'environnement que nous voulons transmettre.
Utilisez ensuite l'objet args renvoyé par argparse pour accéder aux variables d'environnement.
Transmettez les variables d'environnement et leurs valeurs lors de l'exécution du fichier.
import argparse parser = argparse.ArgumentParser() parser.add_argument('--my-var') args = parser.parse_args() my_var = args.my_var print(my_var)
None
Lors de l'exécution du fichier ci-dessus, nous devons transmettre la valeur de l'environnement par nom de clé.
python script.py --my-var "my value"
Lorsque nous passons une option –my-var et sa valeur « ma valeur » dans la ligne de commande, la méthode parse_args() du module argparse analyse l'option et obtient sa valeur, qui est « ma_valeur » .
Configuration Parser est une bibliothèque Python permettant de lire les fichiers de configuration dans les applications Python.
Pour utiliser le module analyseur de configuration, nous devons
Créez un fichier de configuration et déclarez les variables d'environnement selon les besoins sous la forme de paires clé-valeur pour chaque partie (telle que le développement, la production et la préparation).
Utilisez la fonction os.getenv() dans le fichier Python pour accéder à l'environnement actuel.
Dans les fichiers Python qui doivent accéder aux variables d'environnement, nous pouvons utiliser le module ConfigParser pour accéder aux variables d'environnement de l'environnement actuel.
[development] MY_VAR=my value [production] MY_VAR=another value import configparser import os # get the current environment env = os.getenv('ENVIRONMENT', 'development') # read the configuration file config = configparser.ConfigParser() config.read('config.ini') # get the value of the MY_VAR environment variable for the current environment my_var = config.get(env, 'MY_VAR') print(my_var)
Dans cet article, nous avons exploré différentes manières d'accéder aux variables d'environnement dans les fichiers Python. Nous avons appris comment accéder aux variables d'environnement à l'aide du module os, comment accéder aux variables d'environnement dans plusieurs environnements à l'aide de la bibliothèque dotenv, comment transmettre des variables d'environnement comme arguments de ligne de commande à l'aide du module argparse et comment utiliser le Module ConfigParser Accédez aux variables d'environnement de l'environnement actuel à partir de plusieurs environnements.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!