Defina a variável de ambiente persistente para todos os usuários

4

Estou executando o Ubuntu em um PC local com o seguinte Linux distro / kernel:

$ lsb_release -a
>> ubuntu 16.04.3 LTS

$ uname -r
>> 4.10.0-33-generic

Eu tenho um script python (3.5) que chama variáveis de ambiente através do pacote os .

Por uma questão de simplicidade, vamos usar o seguinte script, test_script.py:

import os

MY_VAR = os.environ['MY_VAR']
print(MY_VAR)

Quando executo este script do terminal:

$ 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'

TENTATIVA 1

Referência: [1] [4]

$ MY_VAR=123
$ export MY_VAR
$ echo $MY_VAR
>> 123
$ python test_script.py
>> 123

Sucesso! ... até fechar o terminal e reabrir o terminal. Quando faço isso:

$ 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'

TENTATIVA 2

Referência: [2]

Ao final de /home/USER/.profile , adiciono as seguintes linhas:     # my variable     MYVAR = 123

Salvar. Confirme guardado.

$ 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'

TENTATIVA 3

Referência: [2]

Ao final de /etc/profile , adiciono as seguintes linhas:

# my variable
MYVAR=123

Salvar. Confirme guardado.

$ 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'

TENTATIVA 4

Referência: [2]

Crie myvar.sh em /etc/profile.d/

Adicione a seguinte linha:

MYVAR=123

Salvar. Confirme guardado.

$ 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'

TENTATIVA 5

Referência: [2] [3]

Ao final de /etc/environment , adiciono a seguinte linha:

MYVAR=123

Salvar. Confirme guardado.

$ 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'

Por favor me ajude! Eu não entendo o que estou fazendo errado aqui.

[1] Como definir variáveis de ambiente permanentemente para um usuário [2] Variável de ambiente permanente para todos os usuários [3] Como definir permanentemente as variáveis ambientais [4] Como posso definir uma variável de ambiente do usuário? (permanentemente, não sessão)

    
por xibalba1 05.09.2017 / 06:08

1 resposta

8

Você deve usar as abordagens na tentativa 3 ou 4, mas precisa exportar a variável; mudar

MYVAR=123

para

export MYVAR=123
    
por 05.09.2017 / 06:18