如何在windows上獲取系統環境變量?隨着下面的代碼我只有得到用戶環境變量:Python在windows上獲取系統環境變量
os.environ['PATH']
或者這個返回相同的:
os.getenv('PATH')
謝謝!
如何在windows上獲取系統環境變量?隨着下面的代碼我只有得到用戶環境變量:Python在windows上獲取系統環境變量
os.environ['PATH']
或者這個返回相同的:
os.getenv('PATH')
謝謝!
根據(刪除)的評論,我找到了解決方案。如果python腳本是由用戶運行的,而不是由管理員運行,則應從註冊表中讀取系統環境變量。
import winreg
reg_path = r'SYSTEM\CurrentControlSet\Control\Session Manager\Environment'
reg_key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, reg_path)
system_environment_variables = winreg.QueryValueEx(reg_key, 'Path')[0]
)'os.environ ['PATH']'只返回用戶'PATH'當你使用一個已加載的配置文件登錄時,你的用戶'PATH'被追加到系統'PATH'上,由系統資源管理器及其所有子進程繼承該系統 – eryksun
我運行'os.environ [ PATH']'在我的Win7 x64上與我的用戶,我只有用戶環境變量。我不知道我做錯了什麼,但我的用戶PATH只有3個變量,我的系統路徑有30多,python只返回3.在python中,我無法通過'subprocess'運行外部命令,因爲python沒有看到系統PATH,所以我必須讀取系統PATH的註冊表,並在'subprocess .Popen()'。現在我可以運行我的命令了。 – ragesz
你得到了哪些變量?它們是否與用戶v相同'HKEY_CURRENT_USER \ Environment'中的可變參數?如果cmd.exe在空白環境下運行,它會設置3個默認變量:'COMSPEC','PATHEXT'和'PROMPT'。默認值與用戶的環境變量無關。 – eryksun
http://stackoverflow.com/questions/4906977/how-to-access-environment-variables-from-python – iHowell
的可能的複製http://stackoverflow.com/questions/4906977/how-to -access-environment-variables-from-python – iHowell
您僅限於受當前用戶級別限制的環境變量。這意味着您需要以管理員身份運行以獲取特定路徑,某些路徑僅對用戶是本地的。 – Torxed