API环境变量读取(os.environ)

环境变量 + .env 完整解析


一、三种东西的区别

名字 本质 存在哪 谁来读
系统/用户环境变量 键值对 Windows 注册表 Python os.getenv()
.env 文件 普通文本文件 任意目录 python-dotenv
python-dotenv 工具 - 把 .env 内容写入环境变量

二、为什么需要 .env

系统环境变量 → 直接用 os.getenv() 读取

但缺点:

  • 多台电脑/多人协作时,Key 不一样
  • 换 Key 要手动改系统设置
  • 多人项目不能把 Key 写进 Git

.env 文件 → 用 load_dotenv() 读取

解决了多人协作问题:

  • .env 不上传 Git(加 .gitignore
  • 每人一份自己的 .env
  • 代码本身不包含任何 Key

三、两种读取方式对比

方式A:系统环境变量(不需要 .env)

# PowerShell 设置一次
[System.Environment]::SetEnvironmentVariable("TONGYI_API_KEY", "你的Key", "User")
import os
API_KEY = os.getenv("TONGYI_API_KEY")  # 直接读系统环境变量

方式B:.env 文件(不需要系统环境变量)

.env 文件内容:

TONGYI_API_KEY=你的Key
from dotenv import load_dotenv
import os

load_dotenv(r"C:\Users\16673\Desktop\OO\var\.env")  # 指定路径
API_KEY = os.getenv("TONGYI_API_KEY")

四、全局 .env 路径方案(你的需求)

设置一个环境变量指向 .env 文件路径,所有项目共用:

# PowerShell 设一次,永久生效
[System.Environment]::SetEnvironmentVariable("DOTENV_FILE", "C:\Users\16673\Desktop\OO\var\.env", "User")

代码(所有项目通用):

from dotenv import load_dotenv
import os

load_dotenv()  # 自动读 DOTENV_FILE 指定的路径
API_KEY = os.getenv("TONGYI_API_KEY")

原理python-dotenv 会检查 DOTENV_FILE 环境变量,如果存在就自动用它指定的路径。


五、实际推荐方案

简单理解版:

.env 文件 = 存 Key 的地方(要保密的东西)
.gitignore = 防止 .env 上传 Git
代码 = 只负责读取,不包含 Key

你的情况

  • .envC:\Users\16673\Desktop\OO\var\.env
  • 代码里用 load_dotenv(r"...") 指定路径 ✅
  • 换电脑/换路径 → 只改代码里那一行
posted @ 2026-05-16 22:19  TokE648  阅读(60)  评论(0)    收藏  举报