在 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 是 env 变量的键,my_value 是与其对应的值。

现在,我们可以使用 dotenv.load_dotenv() 函数在需要的地方加载 Python 代码中的 .env 文件,该函数读取 .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 value” 传递 –my-var 选项时,argparse 模块的 parse_ags() 会解析该选项并获取该选项的值,即 “my_value”

使用 Config Parser 模块

Config parser 是一个 python 库,用于在 python 应用程序中读取配置文件。

算法

要使用 config parser 模块,我们必须

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

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

  • 在我们需要访问环境变量的 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 模块从多个环境中访问当前环境的环境变量。

更新于: 2023年4月17日

8K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.