我手动添加了一个环境变量作为setx NEWVAR SOMETHING, 以便我的工具稍后在脚本中使用NEWVAR变量,但我无法访问它,请帮忙。以下是代码。为了您的信息,我能够访问预定义的系统变量
try:
kiran=os.environ["NEWVAR"]
print kiran
except KeyError:
print "Please set the environment variable NEWVAR"
sys.exit(1)
答案 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
,而不是仅仅执行setx
或export
注意:如果您更新/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时它不可用。