You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用os.getenv无法从.env读取API密钥,返回None问题排查

排查Python dotenv加载环境变量返回None的问题
  • 检查.env文件格式细节

    • 确保键值对无多余引号:正确格式是myKey=你的密钥内容,不要加单双引号(除非值本身包含空格或特殊字符)
    • 键名和等号之间不能有空格:别写成myKey = 密钥,必须是myKey=密钥
    • 确认文件名是.env:Windows下注意不要因为隐藏扩展名导致文件变成.env.txt,可以在文件管理器里开启"显示文件扩展名"选项检查
  • 显式指定.env文件路径
    VSCode的工作目录可能和脚本所在目录不一致,load_dotenv()默认找当前工作目录的文件,改成显式路径确保读取正确:

    import os
    from pathlib import Path
    from dotenv import load_dotenv
    
    # 定位到脚本所在目录的.env文件
    load_dotenv(dotenv_path=Path(__file__).parent / ".env")
    api_key = os.getenv("myKey")
    print(api_key)
    
  • 验证.env文件是否被读取
    用dotenv_values直接读取文件内容,确认文件本身没问题:

    from pathlib import Path
    from dotenv import dotenv_values
    
    config = dotenv_values(Path(__file__).parent / ".env")
    print(config)  # 输出整个配置字典,检查是否包含"myKey"
    

    如果这里能看到正确的密钥值,说明是环境变量读取的问题;如果没有,就是文件没被正确找到或格式错误

  • 排查环境变量覆盖问题
    系统或VSCode终端的环境变量可能存在同名空值,覆盖了.env的内容:

    import os
    print(os.environ.get("myKey"))  # 直接打印环境变量里的myKey值
    

    也可以在VSCode终端手动检查:Windows输入echo %myKey%,Mac/Linux输入echo $myKey,看是否有值

  • 解决Python 3.12的报错问题

    • 旧版本python-dotenv不兼容Python 3.12,执行pip install --upgrade python-dotenv升级到最新版
    • 切换到3.12解释器后,确认虚拟环境里已经安装了python-dotenv,避免环境未同步导致的依赖缺失

内容的提问来源于stack exchange,提问作者Andre Chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 06:04:57