7
我有一個複雜的軟件,我無法發佈,也沒有具體的工作示例。我會盡力解釋這個問題,也許有人遇到過這個問題。os.getenv返回None而不是正確的值
在Linux shell中我已經定義了一個環境變量:
> export MY_TEST_ENV=4711
> echo $MY_TEST_ENV
> 4711
在複雜的代碼,我想獲得這個變量與
print os.getenv('MY_TEST_ENV')
它總是返回None
。如果我創建一個測試腳本來測試這種行爲,即使使用不同文件中的類,我也會得到所需的行爲(即os.getenv('MY_TEST_ENV')
返回正確的值4711
)。
代碼以「sudo」開頭。
任何想法可能是什麼原因?
你如何運行這個「複雜的代碼」? – geoffspear
環境變量的其餘部分仍然存在嗎? Python進程如何啓動?如果你用'execve'系統調用啓動一個進程,並且不填寫環境變量,那麼子進程的環境就會被清零。 – alexis
我知道我的問題的解決方案是微不足道的 - 因爲我使用sudo運行python進程!但在我被問及如何運行代碼之前,我還沒有看到這個解決方案。如果沒有sudo,我會看到這個變量(但其餘的代碼將不起作用)。 – Alex