Python 开发必备:优雅管理环境变量的 load_dotenv() 指南
在开发 Python 项目时,常面临数据库密码、API 密钥提交到 GitHub,或本地开发与生产环境配置混乱切换等问题。本文介绍来自 python-dotenv 库的 load_dotenv() 函数,用于从 .env 文件读取键值对并注入操作系统环境变量,实现敏感配置与代码分离。
什么是 load_dotenv()?
load_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}")
进阶技巧:解锁高效用法(dotenv_path)
指定自定义路径
load_dotenv(dotenv_path=".env.production") # 加载生产环境配置

