Чтобы установить переменную окружения с помощью командной строки Windows, процессор (cmd
):Как хранить переменные среды
SET MY_VARIABLE=c:\path\to\filename.txt
MY_VARIABLE
теперь могут быть доступны приложения Python начатой же cmd
окна:
import os
variable = os.getenv('MY_VARIABLE')
I интересно, есть ли способ установить переменную среды изнутри Python, чтобы она стала доступной для других процессов, запущенных на одной машине? Чтобы установить новую переменную окружения:
os.environ['NEW_VARIABLE'] = 'NEW VALUE'
Но это NEW_VARIABLE
теряется, как только процесс Python и вышел.
Если ваш скрипт Python * запускает * эти другие процессы, тривиально и портативно. Если между родительскими и дочерними отношениями нет ... ну, вы можете сохранить их в реестре Windows, чтобы они были настроены для других процессов во время запуска, если это то, что вы хотите, но вы, вероятно, должны пометить свой вопрос как специфичный для Windows в этом дело. –
Когда процесс обновляет переменные среды, хранящиеся в реестре, он должен транслировать сообщение «Среда окружения» WM_SETTINGCHANGE, чтобы сообщить «Проводнику» перезагрузить переменные среды. Любой другой процесс с окном верхнего уровня, который должен слушать, может сделать то же самое, когда видит это сообщение. Консольные процессы, такие как cmd.exe, обычно не имеют окна (консольное окно принадлежит conhost.exe), поэтому они обычно не получают это сообщение. – eryksun