我有其中1個處理設置一個值作爲環境變量的要求和予讀取使用得到改變環境變量在Python
os.environ
作爲每蟒文檔在Python該值:
該映射捕獲的第一 時間os模塊被導入, 通常的Python啓動期間作爲 處理site.py的一部分。直接修改 os.environ所做的更改除外,在此時間後 之後對環境所做的更改不會反映在os.environ, 中。
我的問題是進程設置/每次調用python腳本時更改變量。
請告訴我一種閱讀更改值的方法。
感謝,
我有其中1個處理設置一個值作爲環境變量的要求和予讀取使用得到改變環境變量在Python
os.environ
作爲每蟒文檔在Python該值:
該映射捕獲的第一 時間os模塊被導入, 通常的Python啓動期間作爲 處理site.py的一部分。直接修改 os.environ所做的更改除外,在此時間後 之後對環境所做的更改不會反映在os.environ, 中。
我的問題是進程設置/每次調用python腳本時更改變量。
請告訴我一種閱讀更改值的方法。
感謝,
我想你可以使用os.getenv()
得到一個環境變量的值任何時候,這將反映最先進的最新狀態。
更新:請注意,不存在一個「全局」環境,至少在Linux上不存在。引用維基百科:
在所有類Unix系統中,每個進程都有自己的一組環境變量。默認情況下,創建進程時,它會繼承其父進程的重複環境,除非父進程在創建子進程時進行明確更改。
因此,如果從相同的父進程(如bash
)啓動(叉)兩個過程,並且在處理中的一個改變的環境變量,其它過程將不會看到它,因爲它使用另一種父進程環境的副本。同樣,如果您在啓動子進程後更改父進程中的環境,那麼子進程將看不到更改,因爲它們已經創建了其環境的私有副本。
無法正常工作。我得到相同的舊值。 – shashuec 2011-05-09 10:46:32
好的。問題在於,沒有像所有流程都看到的「全球」環境那樣的東西。看到我上面的更新。 – 2011-05-09 11:29:36
aah..got it ..謝謝... – shashuec 2011-05-09 11:33:59