如何在运行Python脚本时设置临时环境变量?
运行Python脚本时设置临时环境变量的实现方案
方法1:命令行前缀赋值(类Unix系统:Linux/macOS/WSL)
这是最便捷的原生方案,无需额外工具,直接将变量赋值放在执行命令最前端即可,不需要加export:
BEAR_NAME="sleepybear" python hello.py
原理:shell只会将前缀声明的变量注入到后续启动的Python子进程的环境变量中,不会修改当前shell会话的环境变量,Python进程结束后变量自动失效,和
docker run -e的效果完全一致。
如果需要传入多个环境变量,直接依次写在命令前即可:
BEAR_NAME="sleepybear" BEAR_AGE=3 python hello.py
方法2:env命令显式声明
如果你希望写法更清晰,和Docker的-e参数风格更接近,可以用env命令实现:
env BEAR_NAME="sleepybear" python hello.py
效果和方法1完全一致。
方法3:Windows系统适配
如果你使用Windows系统,不同终端的适配写法如下:
- Cmd命令提示符:
末尾的set BEAR_NAME="sleepybear" && python hello.py && set BEAR_NAME=set BEAR_NAME=会在脚本执行完成后自动清理变量,避免残留。 - PowerShell:
$env:BEAR_NAME="sleepybear"; python hello.py; Remove-Item Env:BEAR_NAME
方法4:脚本内置加载(跨平台可选)
如果你不想每次执行命令都手动传变量,可以用python-dotenv库从文件加载临时变量,不需要修改shell环境:
- 先安装依赖:
pip install python-dotenv - 在脚本同目录新建
.env文件,写入变量:BEAR_NAME="sleepybear" - 修改Python脚本加载环境变量:
import os from dotenv import load_dotenv # 加载.env文件的变量,仅当前脚本进程生效 load_dotenv() name = os.environ.get('BEAR_NAME') if name != "": print("hello, ", name) - 直接执行脚本即可:
python hello.py
内容的提问来源于stack exchange,提问作者IsaIkari
相关产品推荐
相关产品推荐

