📜  dotenv python (1)

📅  最后修改于: 2023-12-03 15:14:47.531000             🧑  作者: Mango

使用 dotenv-python 配置 Python 应用

简介

在开发 Python 应用时,通常需要使用各种各样的配置参数,如数据库连接信息、API 密钥等。这些参数通常保存在环境变量中,以避免将其明文保存在代码或配置文件中。

然而,手动管理这些环境变量可能会很麻烦,特别是在多个环境中进行部署时。dotenv-python 可以帮助开发者更轻松地管理 Python 应用程序的环境变量。

dotenv-python 是 Python 的一个第三方库,它可以从 .env 文件中读取环境变量,并将其设置为当前进程的环境变量,从而节省了手动配置环境变量的时间和精力。

安装

dotenv-python 可以使用 pip 安装,在终端或命令行中输入以下命令即可:

pip install python-dotenv
使用方法

在 Python 代码中使用 dotenv-python 很容易。首先,在你的应用程序的根目录中创建一个名为 .env 的文件,其中包含环境变量的名称和值。例如:

DATABASE_URL=postgres://username:password@localhost/mydatabase
API_KEY=abcdefg1234567890

然后,在代码中导入 dotenv 并加载 .env 文件:

from dotenv import load_dotenv
load_dotenv()  # 读取.env文件并设置环境变量

现在,可以通过 os.environ 访问环境变量了。例如,可以像这样获取 DATABASE_URL 环境变量:

import os
database_url = os.environ.get("DATABASE_URL")

如果环境变量没有设置,该表达式将返回 None。

注意 :当运行 Python 程序时,使用 dotenv-python 首先将在执行每个 Python 文件之前加载 .env 文件,因此可以在所有模块中共享所有环境变量。

高级用法
指定 .env 文件的位置

默认情况下,dotenv-python 将在启动 Python 应用程序的目录中查找 .env 文件。但是,可以使用 dotenv_path 参数显式指定 .env 文件的路径:

load_dotenv(dotenv_path="/path/to/.env")
加载特定的环境变量

有时,只需要从 .env 文件中加载特定的环境变量而不是所有变量。可以使用 dotenv_values 函数指定要加载的变量名称的列表:

from dotenv import dotenv_values
config = dotenv_values(".env", ("DATABASE_URL", "API_KEY"))

这将返回一个字典,其中包含指定的环境变量和它们的值。

自定义环境变量优先级

让我们假设您在 .env 文件中设置了一个环境变量,并且在启动 Python 应用程序时设置了一个具有相同名称的环境变量。在这种情况下,哪个值会被使用?

默认情况下,加载的环境变量优先于命令行参数和操作系统环境变量。如果要更改此行为,可以使用 override 参数。如果 override 被设置为 False,则 .env 文件中的值将不会覆盖环境变量。例如:

load_dotenv(override=False)
结论

dotenv-python 是使用 Python 进行开发的应用程序的强大工具,它可以使开发人员更轻松地管理环境变量。通过使用 .env 文件,可以轻松配置应用程序,并将其运行在多个环境中。

参考文献