Python-dotenv:提供了一种简洁且高效的方式来管理和自动设置环境变量

文摘   2024-11-10 00:02   湖南  

在现代软件开发中,环境变量扮演着至关重要的角色。然而,手动设置环境变量往往繁琐且容易出错。Python-dotenv 应运而生,它提供了一种简洁且高效的方式来管理环境变量,为你的开发之旅增添一抹优雅。

简介

Python-dotenv 是一个轻量级 Python 库,它允许你在 .env 文件中定义环境变量,并将其加载到你的 Python 应用程序中。使用 Python-dotenv 可以简化开发过程,避免直接修改系统环境变量,并轻松实现不同环境下的配置管理。

入门

1. 安装

使用 pip 安装 Python-dotenv:

pip install python-dotenv

2. 创建 .env 文件

在你的项目根目录下创建一个名为 .env 的文件,并在其中以键值对的形式定义环境变量。示例:

# 开发环境设置
DOMAIN=example.org
ADMIN_EMAIL=admin@${DOMAIN}
ROOT_URL=${DOMAIN}/app

3. 加载环境变量

在你的 Python 代码中导入 load_dotenv 函数并调用它来加载 .env 文件中的环境变量:

from dotenv import load_dotenv

load_dotenv()  # 加载 .env 文件中的环境变量

# 你的代码可以访问环境变量
print(os.environ.get("DOMAIN"))  # 输出:example.org
print(os.environ.get("ADMIN_EMAIL"))  # 输出:admin@example.org

其他用例

1. 无需修改环境变量加载配置

使用 dotenv_values 函数,可以获取 .env 文件中的所有环境变量,而不会修改系统环境变量:

from dotenv import dotenv_values

config = dotenv_values(".env")  # 获取 .env 文件中的环境变量
print(config)  # 输出:{'DOMAIN': 'example.org', 'ADMIN_EMAIL': 'admin@example.org', 'ROOT_URL': 'example.org/app'}

2. 解析配置流

load_dotenv 和 dotenv_values 函数都接受 stream 参数,允许从其他来源(例如网络)加载配置信息:

from io import StringIO
from dotenv import load_dotenv

config = StringIO("USER=foo\
EMAIL=foo@example.org"
)
load_dotenv(stream=config)

3. 在 IPython 中加载 .env 文件

在 IPython 中,可以使用 %load_ext dotenv 和 %dotenv 命令加载 .env 文件:

%load_ext dotenv
%dotenv

命令行界面

Python-dotenv 提供了一个命令行界面,方便你管理 .env 文件:

$ pip install "python-dotenv[cli]"

# 设置环境变量
$ dotenv set USER foo
$ dotenv set EMAIL foo@example.org

# 列出环境变量
$ dotenv list
USER=foo
EMAIL=foo@example.org

# 以 JSON 格式输出环境变量
$ dotenv list --format=json
{
"USER":"foo",
"EMAIL":"foo@example.org"
}

# 运行带有环境变量的脚本
$ dotenv run -- python foo.py

文件格式

.env 文件的格式类似于 Bash 文件,支持以下特性:

  • • 键可以不加引号或单引号,值可以不加引号、单引号或双引号。

  • • 键、等号和值前后的空格会被忽略。

  • • 值可以包含注释。

  • • 行可以以 export 指令开头,但这不会影响解析。

多行值

可以使用单引号或双引号将值跨多行:

FOO="first line
second line"

变量扩展

Python-dotenv 支持使用 POSIX 变量扩展进行变量插值:

DOMAIN=example.org
ADMIN_EMAIL=admin@${DOMAIN}

总结

Python-dotenv 简化了环境变量管理,让你的开发过程更加轻松和高效。它遵循12要素应用原则,并提供灵活的配置方式,是 Python 开发者必备的工具之一。

项目地址:https://github.com/theskumar/python-dotenv


小白这样学Python
专注Python编程开发知识分享!
 最新文章