无法在python中打印环境变量,这是由用户手动设置的,以便在代码的后续部分中使用该变量

时间:2017-09-20 14:51:25

标签: python python-2.7 python-3.x path environment-variables

我手动添加了一个环境变量作为setx NEWVAR SOMETHING, 以便我的工具稍后在脚本中使用NEWVAR变量,但我无法访问它,请帮忙。以下是代码。为了您的信息,我能够访问预定义的系统变量

try:  
   kiran=os.environ["NEWVAR"]
   print kiran
except KeyError: 
   print "Please set the environment variable NEWVAR"
   sys.exit(1)

3 个答案:

答案 0 :(得分:1)

您需要确保在重新启动shell后环境变量是持久的,否则您的新环境变量将无法在以后访问

ekavala@elx75030xhv:/var/tmp$ export NEWVAR='alan'
ekavala@elx75030xhv:/var/tmp$ python test.py 
alan
*closes shell and reopens*
ekavala@elx75030xhv:/var/tmp$ python test.py 
Please set the environment variable NEWVAR

使用变量更新您的$HOME/.bashrc/etc/environment,而不是仅仅执行setxexport

注意:如果您更新/etc/environment,则需要重新启动计算机才能在shell中设置环境变量

答案 1 :(得分:0)

而不是使用setx来设置这些环境变量;尝试使用EXPORT。以下示例适用于我。

export MYCUSTOMVAR="testing123"
python testing.py

注意:如果您使用的是Windows,则可以使用SET设置env变量。

SET MYCUSTOMVAR=testing123

testing.py

import os

if __name__ == '__main__':
    print("MYCUSTOMVAR: {0}".format(os.environ['MYCUSTOMVAR']))

输出

MYCUSTOMVAR: testing123

答案 2 :(得分:0)

如果要通过脚本设置环境变量:

import os
os.environ["JAVA_HOME"] = "somepath"

如果使用命令提示符设置它,它将仅适用于该shell。如果你在高级系统设置中设置它,它将在每个地方都可用,但是当你在python脚本中打开一个新的shell时它不可用。