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

相关问题