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

os.getenv/os.environ无法读取.env文件变量的问题

问题原因

VSCode的Python调试插件会自动加载项目根目录下的.env文件,把其中的变量注入到环境变量中,所以调试时能正常读取HOST。但直接通过命令行或VSCode普通运行模式执行脚本时,Python本身不会自动读取.env文件,导致os.environ["HOST"]触发KeyError,os.getenv("HOST")返回None。

解决方案

方法一:用python-dotenv自动加载.env文件

这是最通用的方案,不管在哪种运行方式下都能生效:

  1. 安装依赖包:
    pip install python-dotenv
    
  2. 修改script.py代码,添加加载.env的逻辑:
    import os
    from dotenv import load_dotenv
    
    # 加载项目根目录的.env文件
    load_dotenv()
    
    # 正常获取环境变量
    host = os.environ["HOST"]
    # 或者用os.getenv,不存在时返回None(不会报错)
    # host = os.getenv("HOST")
    

方法二:运行脚本前手动设置环境变量

如果不想额外安装依赖,可以在运行脚本时先手动指定环境变量:

  • Windows命令行:
    set HOST="url_to_host" && python script.py
    
  • Linux/macOS终端:
    export HOST="url_to_host" && python script.py
    

方法三:配置VSCode普通运行任务

如果习惯用VSCode的"运行"按钮执行脚本,可以在项目的.vscode目录下创建tasks.json,配置加载.env的任务:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Run Script with Env",
      "type": "shell",
      "command": "python script.py",
      "envFile": "${workspaceFolder}/.env",
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "problemMatcher": []
    }
  ]
}

之后在VSCode中按Ctrl+Shift+B就能运行带.env变量的脚本。

内容的提问来源于stack exchange,提问作者An old man in the sea.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 22:35:19