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

VSCode中Python无法读取.env变量及环境变量导出疑问

问题排查与解决

先修复你的代码问题

你当前的代码存在两个关键问题:

  1. 未导入os模块却调用了os.getenv(),这会直接触发报错(若你没遇到报错,大概率是代码漏贴了导入部分)
  2. load_dotenv()默认仅加载当前目录下名为.env的文件,而你使用的是credentials.env,必须手动指定文件路径

修正后的代码:

import os
from dotenv import load_dotenv

# 加载指定的credentials.env文件
load_dotenv("credentials.env")

# 建议把变量名改成更独特的命名,避免和系统默认环境变量冲突
username = os.getenv("APP_USERNAME")
password = os.getenv("APP_PASSWORD")

print("username: ", username)
print("password: ", password)

同时同步修改你的credentials.env文件内容:

APP_USERNAME=你的目标用户名
APP_PASSWORD=你的目标密码

(之所以改名,是因为username是系统默认环境变量,程序会优先读取系统层面的取值,这就是你输出工作ID的核心原因)

解释“exported as environment variables”

这句话的意思是将变量注入到程序运行的系统环境中,让程序可以通过系统提供的环境变量接口(比如Python的os.getenv())读取到。简单来说就是给程序的运行环境“提前设置好全局变量”,既不用在代码里硬写敏感信息,也能避免提交代码时泄露隐私。

具体操作方法

方法1:用python-dotenv加载(推荐,适合开发环境)

就是上面修正代码的方式,确保:

  • 已安装python-dotenv:执行pip install python-dotenv
  • .env文件路径正确,变量名不与系统默认变量重复
  • 不要将.env文件提交到代码仓库(添加到.gitignore中)

方法2:手动在终端导出环境变量(临时生效)

若不想用dotenv,可以在运行脚本前,在终端先导出变量:

# Linux/macOS终端
export APP_USERNAME=你的目标用户名
export APP_PASSWORD=你的目标密码
python 你的脚本文件名.py
# Windows PowerShell
$env:APP_USERNAME="你的目标用户名"
$env:APP_PASSWORD="你的目标密码"
python 你的脚本文件名.py

这种方式仅在当前终端会话生效,关闭终端后变量会失效。

方法3:在VSCode中配置永久环境变量

打开VSCode的launch.json文件(若没有,按F5运行一次并选择Python环境后会自动生成),在configurations节点中添加env字段:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: 当前文件",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "env": {
                "APP_USERNAME": "你的目标用户名",
                "APP_PASSWORD": "你的目标密码"
            }
        }
    ]
}

这样每次在VSCode中运行脚本,都会自动加载这些环境变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:00:13