Подпроцесс Python не получает переменную среды из Bat-файла - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть файл bat, который устанавливает некоторые переменные среды, такие как

@echo off
SET MY_ENV_VAR=C:\temp

Я хотел бы запустить этот файл bat через Python и запустить другие исполняемые файлы, которые зависят от этих наборов переменных среды bat.Но даже если файл bat запускается, я не вижу переменные среды через Python

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

. Я попытался установить для Shell значение True и добавить другие параметры, которые я нашел в Интернете, но ничего не получилось.Это дает KeyError на os.environ, что MY_ENV_VAR не найден.Когда я запускаю bat-файл вручную перед запуском скрипта python, все работает как положено.

Любая помощь приветствуется.

Спасибо,

1 Ответ

0 голосов
/ 09 февраля 2019

Нет способа изменить вашу среду от дочернего процесса.Конец:)

Но вы можете изменить переменную среды из скрипта, например,

import os
os.environ["MY_ENV_VAR"] = "C:\temp"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...