2011-03-30 114 views
1

在Linux下,os.environ不包含HOST環境變量的原因是什麼,除非我爲解釋器環境明確設置它?os.environ不包含HOST變量

> 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,...沒有明確的出口呢?

+0

您也可以使用[os.uname](http://docs.python.org/library/os.html#os.uname),例如'os.uname [1]'。 – 2011-03-30 12:06:12

+1

那些其他變量已經被導出。 – 2011-03-30 12:17:25

+0

是的,我明白,但是哪個進程導出它們,我的shell啓動文件中沒有這種類型的東西。 – Bernhard 2011-03-30 12:26:17

回答

3

這意味着你已經有了一個被稱爲在你的shell中定義的變量HOST,但不出口了。

試試這個:

export HOST 

環境變量不傳遞給子進程,除非他們已出口這條路。

2

在shell中設置變量不會使其可用於子進程;您也必須導出變量。

$ export HOST 
$ python ...