📅  最后修改于: 2023-12-03 15:14:47.531000             🧑  作者: Mango
在开发 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
文件,可以轻松配置应用程序,并将其运行在多个环境中。