Как мы можем изменить переменную окружения Linux в Python?

Допустим, мы находимся в командной строке и объявляем переменную окружения:

export x=100

Когда я иду на python и набираю:

os.environ['x'] = '100000'

Если я вернулся в команду линия x остается 100. Есть ли способ изменить эту переменную в python?

3
задан 12 December 2013 в 14:36

2 ответа

Нет способа изменить переменные окружения из дочернего процесса. И точно такой же вопрос есть в SO .

0
ответ дан 12 December 2013 в 14:36

Существует обходной путь к тому, чего вы хотите достичь. Предполагая, что вы используете bash в качестве оболочки, вы можете записать изменения в файлы инициализации bash (я выбрал ~/.bashrc):

#!/usr/bin/python
import os
os.system('bash -c \'echo "export a=100000" >> ~/.bashrc\'')
os.system('bash -c \'source ~/.bashrc\'')

Вам нужно добавить bash -c, так как python использует sh в качестве оболочка по умолчанию.


Идея возникла из аналогичного вопроса о SO (отличается от того, который написал Falconer )

.
0
ответ дан 12 December 2013 в 14:36

Другие вопросы по тегам:

Похожие вопросы: