我露出一個系統環境變量說KEY1
在/etc/profile
價值VALUE1
(我知道,我知道,它可能是壞的)Python的獲取系統環境變量的Linux
現在在我的殼,如果我做
$ echo $KEY1
VALUE1
但是當我做
$ python -c "import os; print os.environ.get('KEY1')"
None
$
爲什麼會是這樣的情況?
我露出一個系統環境變量說KEY1
在/etc/profile
價值VALUE1
(我知道,我知道,它可能是壞的)Python的獲取系統環境變量的Linux
現在在我的殼,如果我做
$ echo $KEY1
VALUE1
但是當我做
$ python -c "import os; print os.environ.get('KEY1')"
None
$
爲什麼會是這樣的情況?
您可能沒有導出變量。您可以將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
我在'/ etc/profile'中添加了這個變量。這是環境變量的全球存儲。我不必再輸出它。 –
即使你把它放在''/ etc/profile''中,你仍然需要這個''export''語句。如果你不這樣做,它不適用於設置它的shell中的子進程。那麼你在設置它時使用了「export」嗎? –
而不是保存在/ etc/profile中,您可以創建一個bash shell並將KEY1作爲參數傳遞給python腳本。 –
多種不同類型的應用程序正在使用它,因此無法將參數傳遞給python腳本。 –