0

私は認証トークンを持っていますWindows 10でシステム変数として保存しようとしましたが、 'SLACK_BOT_USER_TOKEN 'と同じ名前の新しいシステム変数、私の認証コードに値を設定し、その後のpython 3.6でこのコードを実行します。認証トークンをPythonでシステム変数として保存しようとしましたが、印刷時にNoneを返しました

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

関連する問題