是一个用来从 .env 文件中加载环境变量到 Python 项目中的工具,能让你避免把敏感信息(如数据库密码、API 密钥)直接写在代码里,提升项目的安全性和配置灵活性。
一、安装 python-dotenv
首先需要通过 pip 安装这个库:
pip install python-dotenv
二、核心使用步骤
1. 创建 .env 文件
在你的项目根目录下新建一个名为 .env 的文件,按 键=值 的格式写入配置项(注意等号前后不要加空格):
# .env 文件内容示例
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=123456
API_KEY=abc123xyz789
DEBUG=True
重要:一定要把
.env文件加入.gitignore,避免提交到代码仓库泄露敏感信息!
2. 在 Python 代码中加载并使用环境变量
有两种常用加载方式,推荐第二种更简洁的方式:
方式 1:基础加载(手动获取)
import os
from dotenv import load_dotenv
# 加载 .env 文件中的环境变量(默认读取项目根目录的 .env)
load_dotenv()
# 如果 .env 文件不在根目录,可指定路径:
# load_dotenv(dotenv_path="./config/.env")
# 通过 os.getenv() 获取环境变量
db_host = os.getenv("DB_HOST")
db_port = os.getenv("DB_PORT")
db_password = os.getenv("DB_PASSWORD")
debug_mode = os.getenv("DEBUG", "False") # 第二个参数是默认值(变量不存在时使用)
# 打印验证
print(f"数据库地址:{db_host}:{db_port}")
print(f"调试模式:{debug_mode}")
方式 2:自动加载(结合 python-dotenv 便捷功能) 如果你的项目是 Flask/Django 等框架,或想更简化,也可以让 load_dotenv 自动注入到环境变量,直接通过 os.environ 获取:
import os
from dotenv import load_dotenv
# load_dotenv() 执行后,环境变量会被注入到 os.environ 中
load_dotenv()
# 使用 os.environ 获取(注意:变量不存在时会抛 KeyError,建议用 os.getenv 更安全)
api_key = os.environ.get("API_KEY") # 等价于 os.getenv("API_KEY")
print(f"API 密钥:{api_key}")
3. 类型转换
.env 文件中的值默认是字符串,如需转为布尔/数字类型,需要手动处理:
import os
from dotenv import load_dotenv
load_dotenv()
# 转为整数
db_port = int(os.getenv("DB_PORT"))
# 转为布尔值(注意:字符串 "True"/"False" 转布尔需要判断,直接 bool() 会返回 True)
debug = os.getenv("DEBUG").lower() == "true"
print(type(db_port), db_port) # <class 'int'> 3306
print(type(debug), debug) # <class 'bool'> True
三、进阶用法
-
只加载存在的 .env 文件:避免文件不存在时报错
load_dotenv(override=False, verbose=False) # override=False 不覆盖系统已有的环境变量 -
加载多个 .env 文件:比如区分开发/生产环境
load_dotenv(".env.dev") # 加载开发环境配置
load_dotenv(".env.prod", override=True) # 加载生产环境配置并覆盖原有变量
总结
-
python-dotenv的核心作用是从.env文件加载环境变量,分离配置和代码,保护敏感信息; -
核心流程:安装 → 创建
.env配置文件 → 用load_dotenv()加载 → 通过os.getenv()获取变量; -
注意事项:
.env文件要加入.gitignore




没有回复内容