Python子进程无法从Bat文件获取环境变量

时间:2019-02-09 16:15:00

标签: python python-3.x subprocess

我有一个bat文件,该文件设置了一些环境变量,例如

@echo off
SET MY_ENV_VAR=C:\temp

我想通过Python运行此bat文件,并运行其他依赖于此环境变量bat集的可执行文件。但是,即使bat文件运行,我也无法通过Python查看环境变量

subprocess.call(['path_to_bat_file\file.bat'], shell = False)
print(os.environ['MY_ENV_VAR'])

我尝试将Shell设置为True,并添加在互联网上找到的其他参数,但没有成功。它使os.environ上的KeyError找不到MY_ENV_VAR。当我在运行python脚本之前手动运行bat文件时,一切正常。

感谢您的帮助。

谢谢

1 个答案:

答案 0 :(得分:1)

无法从子进程更改环境。结束了:)

但是您可以在类似这样的脚本中更改环境变量,

import os
os.environ["MY_ENV_VAR"] = "C:\temp"