Python dotenv 库 load_dotenv() 使用指南
在开发 Python 项目时,常面临数据库密码、API 密钥泄露风险,以及多环境配置切换困难等问题。load_dotenv() 来自 python-dotenv 库,是一个轻量级工具函数,用于从 .env 文件中读取键值对,并注入到操作系统的环境变量中。它让敏感配置与代码彻底分离,是现代 Python 项目的标准实践。
核心价值
- 避免敏感信息泄露(配合
.gitignore) - 无缝切换多环境配置(dev/staging/prod)
- 团队协作零冲突
- 部署更安全(生产环境变量由运维管理)
快速上手
1. 安装库
pip install python-dotenv
2. 创建 .env 文件(项目根目录)
# .env
DEBUG=True
DATABASE_URL=postgresql://user:pass@localhost:5432/mydb
API_KEY=sk-xxxxxx-secret-key
SECRET_KEY=your-django-secret-key-here
PORT=8000
命名规范:全大写 + 下划线,值含空格需加引号(如 NAME="John Doe")。
3. 在代码中加载并使用
from dotenv import load_dotenv
import os
# 加载 .env 文件(默认当前目录)
load_dotenv()
# 安全获取变量(推荐使用 os.getenv)
# 环境变量值永远是字符串类型,需要处理后返回布尔类型
debug_mode = os.getenv("DEBUG", "False") == "True"
api_key = os.getenv("API_KEY")
port = int(os.getenv("PORT", 5000)) # 提供默认值防崩溃
print(f"服务运行在端口:{port}")
进阶技巧
指定自定义路径
load_dotenv(dotenv_path=".env.production") # 加载生产环境配置
强制覆盖已有变量(override=True)
load_dotenv(override=True) # 覆盖系统已存在的同名环境变量

