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

Windows环境下Python脚本运行时如何通过命令行设置环境变量传递API密钥?

Windows环境下Python脚本运行时如何通过命令行设置环境变量传递API密钥?

看起来你遇到的问题有两个关键点——Windows命令行设置环境变量的语法不对,还有脚本里不小心破坏了os.environ的结构,咱们一步步解决:

1. 先修复脚本里的致命错误

你代码里的这一行:

os.environ = "website.abc.com"

这是大问题!os.environ是Python用来管理系统环境变量的类字典对象,你把它直接赋值成字符串后,它就不再是字典了,后续尝试用os.environ['MY_API_KEY']访问环境变量时,自然会报错(因为字符串没有__getitem__方法,也就是你看到的"frozen os in getitem"相关错误)。

如果你是想设置某个环境变量(比如网站地址),应该改成:

os.environ['WEBSITE_URL'] = "website.abc.com"

如果这行是误写的,直接删掉它就行!

2. Windows命令行正确设置环境变量的方法

Windows的CMD和PowerShell语法和Linux不一样,你之前用的是Linux的写法,所以环境变量没传递到脚本里:

情况一:用CMD命令提示符

正确的命令是不要加引号、不要在等号两边加空格:

set MY_API_KEY=abcd1234 && python myfile.py
  • 错误写法:set MY_API_KEY = 'abcd1234'——等号两边的空格会被当成变量名/值的一部分,导致脚本里找不到MY_API_KEY(实际变量名是MY_API_KEY 带空格)。
  • 也不要加单引号,CMD里设置变量时引号会被当成值的一部分,比如set MY_API_KEY='abcd1234'会让值变成'abcd1234'(带引号),而不是纯密钥。

情况二:用PowerShell

正确的命令有两种:

  1. 先设置环境变量,再运行脚本:
$env:MY_API_KEY='abcd1234'; python myfile.py
  1. 或者用一次性传递的方式(部分PowerShell版本支持):
$env:MY_API_KEY='abcd1234' python myfile.py

3. 更便捷的替代方案:用.env文件(不用每次命令行传参)

如果不想每次运行脚本都在命令行输环境变量,可以用python-dotenv包来管理密钥:

  1. 先安装包:
pip install python-dotenv
  1. 在脚本同目录下创建一个.env文件,内容就是:
MY_API_KEY=abcd1234
  1. 在脚本开头添加加载代码:
from dotenv import load_dotenv
import os

# 加载.env文件里的环境变量
load_dotenv()

# 之后正常使用os.environ['MY_API_KEY']就行
header = {
    "Accept": "application/json",
    "Authorization": f"Bearer {os.environ['MY_API_KEY']}"
}
  1. 直接运行脚本就行,不用传任何参数:
python myfile.py

4. 临时会话内设置环境变量

如果你想在当前终端会话里多次运行脚本,不用每次都传参数,可以先设置环境变量,再运行脚本:

  • CMD:
set MY_API_KEY=abcd1234
python myfile.py
  • PowerShell:
$env:MY_API_KEY='abcd1234'
python myfile.py

这样这个会话里后续运行的所有脚本都能访问到MY_API_KEY变量,关闭终端后变量就失效了。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 06:59:36