CMD和PowerShell等進程在啓動時會獲取環境的副本。修改原始環境變量時,此副本不會更新。除了修改系統設置中的變量外,還需要重新啓動進程以獲取更新的值或修改複製的變量。
示範:
PS C:\>echo $env:FOO
PS C:\>python
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>import os
>>>print(os.getenv('FOO'))
None
>>>exit()
PS C:\>$env:FOO = 'bar'
PS C:\>echo $env:FOO
bar
PS C:\>python
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>import os
>>>print(os.getenv('FOO'))
bar
如果變量通過GUI環境變量編輯器設置,然後資源管理器的環境應該已經被更新。您不應該重新啓動系統。但是,您必須從資源管理器重新啓動Python(或cmd/PowerShell,然後是Python)以查看更新後的環境。 – eryksun
我明白了,我可能只是需要重新啓動我的外殼。感謝您的澄清! – Cdhippen