2017-07-05 85 views
1

我露出一個系統環境變量說KEY1/etc/profile價值VALUE1(我知道,我知道,它可能是壞的)Python的獲取系統環境變量的Linux

現在在我的殼,如果我做

$ echo $KEY1 
VALUE1 

但是當我做

$ python -c "import os; print os.environ.get('KEY1')" 
None 
$ 

爲什麼會是這樣的情況?

+0

而不是保存在/ etc/profile中,您可以創建一個bash shell並將KEY1作爲參數傳遞給python腳本。 –

+0

多種不同類型的應用程序正在使用它,因此無法將參數傳遞給python腳本。 –

回答

1

您可能沒有導出變量。您可以將export視爲將shell變量公開而非私有的方式。看看export man page

➜ ~ K=1  
➜ ~ echo $K 
1 
➜ ~ python -c "import os; print os.environ.get('K')" 
None 
➜ ~ export K=1 
➜ ~ python -c "import os; print os.environ.get('K')" 
1 
+0

我在'/ etc/profile'中添加了這個變量。這是環境變量的全球存儲。我不必再輸出它。 –

+1

即使你把它放在''/ etc/profile''中,你仍然需要這個''export''語句。如果你不這樣做,它不適用於設置它的shell中的子進程。那麼你在設置它時使用了「export」嗎? –