os.environ не содержит переменную HOST - PullRequest
2 голосов
/ 30 марта 2011

В чем может быть причина того, что os.environ не содержит переменную среды HOST в Linux, за исключением того, что я установил ее явно для среды интерпретатора?

> echo $HOST; python -c 'import os; print "HOST" in os.environ'
bbox
False
> echo $HOST; HOST=$HOST python -c 'import os; print "HOST" in os.environ'
bbox
True

РЕДАКТИРОВАТЬ: Спасибо за предложение export, однако, почему большинство других переменных доступны, например, USER, PS1, LANG,... без явного их экспорта?

Ответы [ 2 ]

3 голосов
/ 30 марта 2011

Это означает, что у вас есть переменная с именем HOST, определенная в вашей оболочке, но вы не экспортировали ее.

Попробуйте это:

export HOST

Переменные среды не передаются дочерним процессам, если они не были экспортированы таким образом.

2 голосов
/ 30 марта 2011

Установка переменной в оболочке не делает ее доступной для подпроцессов;Вы также должны экспортировать переменную.

$ export HOST
$ python ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...