在开发 Python 项目时,配置管理往往是个痛点。数据库密码、API 密钥如果硬编码在代码里,一旦提交到 GitHub 就可能泄露;本地、测试和生产环境的配置切换也容易导致混乱。load_dotenv() 来自 python-dotenv 库,是一个轻量级工具函数,用于从 .env 文件中读取键值对,并注入到操作系统的环境变量中。它让敏感配置与代码彻底分离,是现代 Python 项目的标准实践。
核心优势
- 避免敏感信息泄露:配合
.gitignore防止误提交。 - 多环境无缝切换:轻松管理 dev/staging/prod 配置。
- 团队协作零冲突:统一配置入口,减少硬编码修改。
- 部署更安全:生产环境变量由运维或云平台控制台管理。
快速上手
1. 安装依赖
pip install python-dotenv
2. 创建 .env 文件
在项目根目录创建一个名为 .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
3. 加载并使用
在代码入口处调用 load_dotenv(),之后通过 os.getenv() 获取变量。需要注意的是,环境变量值永远是字符串类型,需要自行处理类型转换。
from dotenv import load_dotenv
import os
# 加载.env 文件(默认当前目录)
load_dotenv()
# 安全获取变量
debug_mode = os.getenv("DEBUG", "False") == "True"
api_key = os.getenv("API_KEY")
port = int(os.getenv("PORT", 5000))
print(f"服务运行在端口:{port}")
进阶用法
指定自定义路径
如果你的 .env 文件不在项目根目录,可以指定路径:

