微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 为所有用户设置持久性环境变量

我正在使用以下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'

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

ATTEMPT 2

参考:[2]

到/home/USER/.profile的末尾,我添加以下行:
    #我的变量
    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]

在/etc/profile.d/中创建myvar.sh

添加以下行:

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'

ATTEMPT 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] How to set environment variables permanently for one user
[2] Permanent Environment Variable for all users
[3] How to permanently set environmental variables
[4] How do I set a user environment variable? (permanently, not session)

解决方法:

您应该使用尝试3或4中的方法,但是您需要导出变量;更改

MYVAR=123

export MYVAR=123

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐