Linux

為所有使用者設置持久環境變數

  • March 30, 2022

我在具有以下 linux 發行版/核心的本地 PC 上執行 Ubuntu:

$ lsb_release -a
>> ubuntu 16.04.3 LTS

$ uname -r
>> 4.10.0-33-generic

我有一個 python (3.5) 腳本,它通過os包呼叫環境變數。

為簡單起見,讓我們使用以下腳本 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. 如何為一個使用者永久設置環境變數
  2. 所有使用者的永久環境變數
  3. 如何永久設置環境變數
  4. 如何設置使用者環境變數?(永久,不是會話)

您應該使用嘗試 3 或 4 中的方法,但您需要導出變數;改變

MYVAR=123

export MYVAR=123

引用自:https://unix.stackexchange.com/questions/390387