必须显式调用load_dotenv()才能读取.env文件,否则os.getenv()返回none;需在入口文件顶部立即执行,并注意路径、编码、语法及加载时机。

直接运行 pip install python-dotenv 就能装上,但要注意它不自动加载环境变量——这是新手最常卡住的地方。
为什么装完 python-dotenv 还读不到 .env 文件?
因为 python-dotenv 不会自动执行加载逻辑,它只提供 load_dotenv() 这个函数。Python 启动时根本不会“扫描并加载 .env”,必须你手动调用。
- 常见错误现象:明明有
.env文件,os.getenv("API_KEY")却返回None - 正确做法:在项目入口(比如
main.py或app.py最顶部)加一行from dotenv import load_dotenv; load_dotenv() - 路径默认找当前工作目录下的
.env,不是脚本所在目录——如果用python src/app.py启动,就要确保终端在src同级且.env在那里,或显式传路径:load_dotenv(".env")或load_dotenv(Path(__file__).parent / ".env")
pip install python-dotenv 和 pip install dotenv 有什么区别?
别装错包名:dotenv 是另一个不维护的旧包(最后更新是 2015 年),而官方正统包是 python-dotenv。装错会导致 ModuleNotFoundError: No module named 'dotenv' 或导入后无 load_dotenv 函数。
SkillSub Pro - Python 题解与代码注释双功能技能功能概述SkillSub Pro - Python 题解与代码注释双功能技能是一项面向实际任务的技能,主要用于SkillSub Pro 是一个 Python 题解生成与代码注释的 双功能合体技能 ,专为学生、算法学习者和开发者设计;✅ 一个技能,两种用途 :;核心要点📝 题解模式 :输入题目/题号,自动生成完整 Python 题解(含详细注释、解题思路、复杂度分析);💬 注释模式 :输入 Python 代码,自动添加详细中。它将相关步骤、
- 确认安装的是对的:运行
pip show python-dotenv,输出应含Name: python-dotenv和较新版本(如Version: 1.0.1) - 如果误装了
dotenv,先卸载:pip uninstall dotenv,再装回python-dotenv - PyPI 页面地址是
https://pypi.org/project/python-dotenv/,可查最新版本和依赖
加载失败时怎么快速定位问题?
加载失败通常不报错,只是静默跳过——所以得主动检查是否生效。
- 加一句调试:在
load_dotenv()后立刻 printos.getenv("PATH")或任意已知存在的 key,确认值非None - 检查文件编码:Windows 记事本保存的
.env默认是 GBK,Python 读取会乱码或跳过整行,务必用 UTF-8 无 BOM 保存(VS Code、Notepad++ 都可设) - 注意语法限制:
.env不支持引号包裹(KEY="value"会被当成字面量"value")、不支持空格前后(KEY = value中的空格会被当分隔符)、不支持注释嵌入值后(KEY=value # comment会导致value # comment被整体读入)
真正容易被忽略的点是:环境变量加载时机必须早于任何依赖它的代码;哪怕晚半行(比如先 import 了某个读配置的模块),就再也补不回来了。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










