我正在使用以下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] 举报,一经查实,本站将立刻删除。