我在本地 PC 上运行 Ubuntu,具有以下 Linux 发行版/内核:
$ 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'
第五次尝试
参考文献:[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
您应该使用尝试3或4中的方法,但需要导出变量;改变
MYVAR=123
到
export MYVAR=123