web-dev-qa-db-ja.com

すべてのユーザーに永続的な環境変数を設定する

ローカル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

参照:[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

参照:[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'

試み3

参照:[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'

試み4

参照:[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'

試み5

参照:[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] ユーザー環境変数を設定するにはどうすればよいですか?(永続的に、セッションではありません)

4
xibalba1

試行3または4のアプローチを使用する必要がありますが、変数をエクスポートする必要があります。変化する

MYVAR=123

export MYVAR=123
8
Stephen Kitt