VSCode运行Python脚本无法读取.env环境变量返回None
问题根因
读取返回None由两个写法错误直接导致,附带一个Windows环境高频踩坑点:
.env文件中多余的export前缀:export是Linux/macOS终端下设置环境变量的Shell语法,你使用的0.20.0版本python-dotenv在Windows环境下解析带该前缀、且等号两侧带空格的行时,无法正确匹配键名。- 键值对的等号两侧加了空格:python-dotenv按
.env语法规范解析时,会将等号两侧的空格计入键名/值的内容,直接导致键名匹配失败。 - Windows系统默认隐藏已知文件扩展名,很多人创建
.env文件时实际保存成了.env.txt,或者.env文件没有放在Python脚本运行的工作目录下,load_dotenv()默认找不到文件,自然不会加载任何变量。
修复步骤
- 修改
.env文件内容,删除export前缀,去掉等号两侧的空格,修改后内容如下:PRIVATE_KEY=0xc3c4e4fe27d8e6b06710e713878e4488c034ce346a578fdfa78bb3d335130eec - (可选,彻底规避路径问题)修改Python代码,显式指定
.env文件的绝对路径,避免因为运行终端的工作目录不对导致找不到配置文件:from dotenv import load_dotenv import os # 固定取和当前脚本同目录下的.env文件 env_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '.env') load_dotenv(env_path) print(os.getenv("PRIVATE_KEY"))
排查技巧
如果修改后仍然返回None,可以先打印load_dotenv()的返回值:该方法返回布尔类型,返回True代表成功找到并加载了.env文件,返回False则代表完全没找到对应文件,优先检查:
- 文件名是否正确,有没有被系统自动加上
.txt后缀 .env文件路径是否和代码里指定的路径一致
内容的提问来源于stack exchange,提问作者boten500
相关产品推荐
相关产品推荐

