Python 访问环境变量值

Python 访问环境变量值

Python中的环境变量是存储在代码之外并在运行时由应用程序使用的配置值。这些变量以键值对的形式存在,就像Python中的字典一样。这些变量可以在不更改应用程序代码的情况下从配置文件中设置、更新或删除。Python提供了许多操作系统函数来访问环境变量,而不影响应用程序的代码。在本文中,我们将学习在Python中访问环境变量的方法。

使用OS模块

为了与操作系统交互,Python有一个os模块,通过这个模块可以与操作系统交互并访问环境变量。 os.environ 字典包含所有的环境变量,以键值对的形式存在。

我们可以使用 os.environ 来访问环境变量的路径和任何新的环境变量值。

示例

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

示例

如果未找到环境变量,则代码会引发键错误。为了避免这种错误,我们可以使用os.environ.get()函数来访问环境变量,并在未找到键时避免引发键错误。

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

使用Dotenv模块

在业务中,我们在开发、演示和生产环境下使用不同的环境。每个环境都有不同的环境变量文件。Dotenv是一个第三方库,用于在多个环境中访问环境变量。

安装

要使用dotenv模块,我们首先需要通过以下命令安装python-dotenv。

pip install python-dotenv

Pip是Python的包管理器。

Pip install python-dotenvdotenv 模块安装到本地文件系统中。

在安装python-dotenv模块之后,我们需要在项目的根目录中创建一个.env文件,并在其中创建环境值作为键值对。

MY_KEY_VAR=my_value

这个 My_KEY_VAR 是环境变量的键,而 my_value 是与之相应的值。

现在,我们可以在需要的地方在我们的Python代码中加载 .env 文件,使用 dotenv.load_dotenv() 函数读取 .env 文件,并在 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模块

Argparse是Python中的标准库,用于解析命令行参数。我们可以使用Argparse库将环境变量作为命令行参数传递给Python

步骤

  • 为我们想要传递的每个环境变量定义一个命令行参数。

  • 然后使用Argparse返回的args对象访问环境变量。

  • 在运行文件时将环境变量及其值传递。

示例

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--my-var')
args = parser.parse_args()

my_var = args.my_var
print(my_var)

输出

None

当运行上述文件时,我们需要使用键名来传递env值。

python script.py --my-var "my value"

当在命令行中使用 --my-var 选项及其值 “my value” 时,argparse模块的parse_args()函数会解析该选项,并获取该选项的值,即 “my_value”

使用ConfigParser模块

ConfigParser 是一个Python库,用于读取Python应用程序中的配置文件。

步骤

要使用配置解析器模块,我们需要:

  • 创建一个配置文件,并为每个部分(如开发、生产和暂存)以键值对的形式声明环境变量(如果需要)。

  • 使用 os.getenv() 函数在Python文件中访问当前环境。

  • 在需要访问环境变量的Python文件中,可以使用 ConfigParser 模块来访问当前环境的环境变量。

[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)

结论

在本文中,我们探讨了在Python文件中访问环境变量的不同方法。我们了解了如何使用 os 模块来访问环境变量,如何使用 dotenv 库在多个环境中访问环境变量,如何使用 argparse 模块将环境变量作为命令行参数传递,以及如何使用 ConfigParser 模块从多个环境中访问当前环境的环境变量。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程