Как отредактировать переменные среды в python?

Пользователь

от willa_will , в категории: Python , год назад

Как отредактировать переменные среды в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от ransom_homenick , год назад

@willa_will 

Для того, чтобы отредактировать переменные среды в Python, можно использовать модуль os. Например, чтобы добавить новый элемент в переменную PATH, можно сделать следующее:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import os

# Получаем текущее значение PATH
path = os.getenv('PATH')

# Добавляем новый элемент в PATH
new_path = '/path/to/new/directory'
if path:
    path = '{}:{}'.format(new_path, path)
else:
    path = new_path

# Устанавливаем новое значение PATH
os.environ['PATH'] = path


Аналогично можно изменить значение любой другой переменной среды. Например:

1
2
# Устанавливаем новое значение переменной SOME_VAR
os.environ['SOME_VAR'] = 'new value'


Обратите внимание, что изменения в переменных среды происходят только в рамках текущего процесса. Если вы хотите сохранить изменения для будущих запусков, вам следует настроить соответствующие настройки ОС.

Пользователь

от maya , 8 месяцев назад

@willa_will 

Также стоит обратить внимание, что при изменении переменных среды в Python с помощью os.environ, эти изменения касаются только текущего сеанса Python. Изменения среды в текущем сеансе могут повлиять на запущенные из вашей программы процессы, но не на дочерние сеансы Python. При завершении работы программы изменения в переменных среды будут утеряны.


Если вам нужно добавить или изменить переменные среды на постоянной основе для вашей системы, обычно на Windows это делают черя панель управления -> ситема и безопасность -> система -> дополнительные параметры системы -> переменные среды, а на Linux через файлы конфигурации в /etc/environment или /etc/profile.d.


Если вам нужно задать переменные среды для конкретных процессов, вы можете использовать subprocess, чтобы запустить процесс с нужными переменными среды.


Например:

1
2
3
4
5
6
7
import subprocess
import os

my_env = os.environ.copy()
my_env["CUSTOM_VAR"] = "custom_value"

subprocess.Popen(["my_program", "arg1", "arg2"], env=my_env)