尝试将身份验证令牌存储为python中的系统变量,但在打印时返回None

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尝试将身份验证令牌存储为python中的系统变量,但在打印时返回None相关的知识,希望对你有一定的参考价值。

我有一个身份验证令牌,我试图在Windows 10中存储为系统变量,我尝试创建一个名为“SLACK_BOT_USER_TOKEN”的新用户变量和一个同名的新系统变量,将值设置为我的身份验证代码,然后在python 3.6中运行此代码:

import os

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

返回我的PATH(预期)和'None'。为什么不识别我创建的新变量?我使用PowerShell以管理员身份运行脚本。

答案

像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
另一答案

真是愚蠢的解决方案。我不得不重新启动电脑。主帮助我。

以上是关于尝试将身份验证令牌存储为python中的系统变量,但在打印时返回None的主要内容,如果未能解决你的问题,请参考以下文章

用于跨域身份验证的 JWT 令牌

身份验证令牌和授权如何在 reactjs 中工作?

Flutter Firebase 存储:请求没有身份验证令牌

如何在 Angular 应用程序中存储身份验证令牌

PyGithub 中的 JWT 令牌身份验证问题

当用户单击链接时,如何通过请求将身份验证令牌从本地存储发送到后端