0

我有一個身份驗證令牌我試圖將其作爲系統變量存儲在Windows 10中,我嘗試創建一個名爲'SLACK_BOT_USER_TOKEN'的新用戶變量「和同名的新系統變量,其值設置爲我的驗證碼,然後在Python 3.6運行這段代碼:嘗試將身份驗證令牌作爲系統變量存儲在python中,但在打印時返回無效

import os 

print(os.getenv('PATH')) 
print(os.getenv('SLACK_BOT_USER_TOKEN')) 

返回我的PATH(預期)和‘無’。爲什麼它不能識別我創建的新變量?我正在使用powershell以管理員身份運行腳本。

回答

1

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 
0

真是愚蠢的解決方案。我不得不重新啓動我的電腦。上帝幫助我。

+0

如果變量通過GUI環境變量編輯器設置,然後資源管理器的環境應該已經被更新。您不應該重新啓動系統。但是,您必須從資源管理器重新啓動Python(或cmd/PowerShell,然後是Python)以查看更新後的環境。 – eryksun

+0

我明白了,我可能只是需要重新啓動我的外殼。感謝您的澄清! – Cdhippen

相關問題