
Python-Dotenv 的详细使用指南
python-dotenv
是一个用于从 .env
文件加载环境变量的 Python 库,适用于开发阶段管理敏感配置(如 API 密钥、数据库密码等)。以下是详细使用说明:
1. 安装
pip install python-dotenv
2. 基本用法
创建
.env
文件
在项目根目录创建.env
文件,内容如下:# .env SECRET_KEY=your_secret_key_here DEBUG=True DATABASE_URL=postgres://user:password@localhost/dbname
加载环境变量
在 Python 代码中加载.env
文件:from dotenv import load_dotenv import os # 加载 .env 文件中的变量到环境变量 load_dotenv() # 使用变量 secret_key = os.getenv("SECRET_KEY") debug_mode = os.getenv("DEBUG") # 返回字符串 "True" db_url = os.getenv("DATABASE_URL") print(secret_key) # 输出: your_secret_key_here
3. 高级配置
指定自定义文件路径
若.env
文件不在根目录或需使用其他文件名:load_dotenv(dotenv_path="config/.env") # 加载指定路径的 .env 文件
覆盖系统环境变量
默认情况下,.env
中的变量不会覆盖系统环境变量。通过override=True
强制覆盖:load_dotenv(override=True)
自动搜索
.env
文件load_dotenv
默认会自动从当前目录及其父目录搜索.env
文件。
4. 处理变量类型
环境变量默认以字符串形式读取,需手动转换类型:
debug = os.getenv("DEBUG", "False") == "True" # 转为布尔值
port = int(os.getenv("PORT", 5000)) # 转为整数
5. 与框架集成
Flask
在config.py
或应用入口文件中加载:from flask import Flask from dotenv import load_dotenv load_dotenv() app = Flask(__name__) app.config["SECRET_KEY"] = os.getenv("SECRET_KEY")
Django
在settings.py
开头加载:from dotenv import load_dotenv load_dotenv() SECRET_KEY = os.getenv("SECRET_KEY") DEBUG = os.getenv("DEBUG") == "True"
6. 使用 python-dotenv
命令行
通过 dotenv
命令运行脚本,自动加载 .env
文件:
dotenv run python your_script.py
7. 注意事项
安全
将.env
添加到.gitignore
,避免敏感信息泄露。生产环境
生产环境中应直接设置系统环境变量,而非使用.env
文件。变量引用
.env
文件支持类似 Shell 的变量扩展:BASE_DIR=/opt/app LOG_DIR=${BASE_DIR}/logs
8. 完整示例
项目结构:
myapp/
├── .env
└── app.py
app.py
内容:
from dotenv import load_dotenv
import os
load_dotenv()
DB_CONFIG = {
"host": os.getenv("DB_HOST"),
"user": os.getenv("DB_USER"),
"password": os.getenv("DB_PASSWORD"),
}
print(DB_CONFIG)
通过 python-dotenv
,可以高效管理开发环境配置,确保代码与敏感信息分离,提升安全性。