ローカルPCでUbuntuを実行していて、次のlinux distro/kernelを使用しています。
$ lsb_release -a
>> ubuntu 16.04.3 LTS
$ uname -r
>> 4.10.0-33-generic
私はos
パッケージを介して環境変数を呼び出すpython(3.5)スクリプトを持っています。
簡単にするために、次のスクリプトtest_script.pyを使用します。
import os
MY_VAR = os.environ['MY_VAR']
print(MY_VAR)
このスクリプトをターミナルから実行すると:
$ python test_script.py
>> File "test-script.py", line 3, in <module>
>> MY_VAR = os.environ['MY_VAR']
>> File "/home/USER/anaconda3/lib/python3.6/os.py", line 669, in __getitem__
>> raise KeyError(key) from None
>> KeyError: 'MY_VAR'
参照:[1] [4]
$ MY_VAR=123
$ export MY_VAR
$ echo $MY_VAR
>> 123
$ python test_script.py
>> 123
成功!...端末を閉じて端末を再び開くまで。私がそれをするとき:
$ python test_script.py
>> File "test-script.py", line 3, in <module>
>> MY_VAR = os.environ['MY_VAR']
>> File "/home/USER/anaconda3/lib/python3.6/os.py", line 669, in __getitem__
>> raise KeyError(key) from None
>> KeyError: 'MY_VAR'
参照:[2]
/home/USER/.profile
の最後に、次の行を追加します。#my variable MYVAR = 123
保存する。保存を確認します。
$ python test_script.py
>> File "test-script.py", line 3, in <module>
>> MY_VAR = os.environ['MY_VAR']
>> File "/home/USER/anaconda3/lib/python3.6/os.py", line 669, in __getitem__
>> raise KeyError(key) from None
>> KeyError: 'MY_VAR'
参照:[2]
/etc/profile
の最後に、次の行を追加します。
# my variable
MYVAR=123
保存する。保存を確認します。
$ python test_script.py
>> File "test-script.py", line 3, in <module>
>> MY_VAR = os.environ['MY_VAR']
>> File "/home/USER/anaconda3/lib/python3.6/os.py", line 669, in __getitem__
>> raise KeyError(key) from None
>> KeyError: 'MY_VAR'
参照:[2]
myvar.sh
を/etc/profile.d/
に作成
次の行を追加します。
MYVAR=123
保存する。保存を確認します。
$ python test_script.py
>> File "test-script.py", line 3, in <module>
>> MY_VAR = os.environ['MY_VAR']
>> File "/home/USER/anaconda3/lib/python3.6/os.py", line 669, in __getitem__
>> raise KeyError(key) from None
>> KeyError: 'MY_VAR'
参照:[2] [3]
/etc/environment
の最後に、次の行を追加します。
MYVAR=123
保存する。保存を確認します。
$ python test_script.py
>> File "test-script.py", line 3, in <module>
>> MY_VAR = os.environ['MY_VAR']
>> File "/home/USER/anaconda3/lib/python3.6/os.py", line 669, in __getitem__
>> raise KeyError(key) from None
>> KeyError: 'MY_VAR'
助けてください!ここで何が間違っているのか理解できません。
[1] 1人のユーザーの環境変数を永続的に設定する方法 [2] すべてのユーザーの永続的な環境変数 [3] 環境変数を永続的に設定する方法 = [4] ユーザー環境変数を設定するにはどうすればよいですか?(永続的に、セッションではありません)
試行3または4のアプローチを使用する必要がありますが、変数をエクスポートする必要があります。変化する
MYVAR=123
に
export MYVAR=123