我試圖改變我的Python執行過程的環境。看來正確的做法應該是與os.environ進行交互。然而,我以下斷言失敗:如何在Python中控制進程環境變量?
import os, subprocess
os.environ['ATESTVARIABLE'] = 'value'
value = subprocess.check_output(['echo', '$ATESTVARIABLE'], shell=True)
assert 'value' in value
有沒有別的東西,我應該做的改變目前的環境?上面的代碼揭示了我對Python的理解有什麼缺陷:)? (請注意,在當前的Python解釋器中,os.environ['ATESTVARIABLE']
包含期望值,我設置運行一些代碼需要一個特定的環境變量,並可能啓動外部進程。顯然,如果我想控制環境一個具體子的,我會用ENV關鍵字)。
你的代碼是無效的Python代碼,對不起。請修復它,如果你期望幫助... – Paul
@ paul-我的代碼執行使用Linux和Python 2.7.3(除了意料之外的AssertionError)。你使用的是什麼版本的Python? – dbn
啊。我明白了,您的意思是check_output中的(現在已更正)錯字。謝謝。 – dbn