在Python中创建环境变量似乎不起作用

时间:2017-11-23 05:49:36

标签: python linux ubuntu

我正在编写一个python脚本,我希望这个脚本将一些值写入一个环境变量,该变量在运行此脚本之前不存在。我正在运行的操作系统是Ubuntu。理想情况下,在执行脚本之后,我应该能够使用终端上的echo命令显示环境变量。我的意思是终端行为应该是这样的:

> echo $NEW_VAR
environmentvarvalue

我希望能够在不同的python脚本中访问此环境变量。所以下面的代码:

import os
output = "The value of NEW_VAR is " + os.environ.get('NEW_VAR')
print output

在运行初始脚本后运行时,执行时应生成以下输出:

The value of NEW_VAR is environmentvarvalue

经过一番研究后,我在初始脚本中尝试了以下代码:

import os
os.environ['NEW_VAR'] = 'environmentvarvalue'

但环境变量只保存在初始scrpt的范围内,当我在执行脚本后在终端上运行echo命令时,行为与变量不存在时的行为相同。我的代码有问题吗?或者有更好的方法通过python分配环境变量?我知道我可以从子进程python模块运行export命令,但这似乎不是解决这个问题的正确方法。

1 个答案:

答案 0 :(得分:0)

您无法使用环境变量执行此操作。脚本完成后,您的环境将被销毁。父进程(您的shell)永远不会看到变量。

您需要一种不同的方法。可能写入文件或数据库。