如何设置“系统级”环境变量?

时间:2017-02-13 21:23:20

标签: python linux bash export subprocess

我正在尝试为文件生成加密密钥,然后将其保存以供下次运行脚本时使用。我知道这不是很安全,但它只是一个临时解决方案,用于保护密码不被git repo。

subprocess.call('export KEY="password"', shell=True)返回0并且什么都不做。 在我的bash提示符中手动运行export KEY="password"在Ubuntu上运行正常。

3 个答案:

答案 0 :(得分:2)

subprocess.call('export KEY="password"', shell=True)

创建一个shell,设置你的KEY并退出:什么都不做。

环境变量不会传播到父进程,只会传播到子进程。在bash提示符中设置变量时,它对所有子进程都有效(但不在bash提示符之外,以便快速并行)

使用python实现它的唯一方法是使用调用子模块或进程的主python脚本(使用os.putenv("KEY","password")os.environ["KEY"]="password")来设置密码。

答案 1 :(得分:1)

这不是你能做的事情。您的子进程调用会创建一个子shell并在那里设置env var,但不会影响当前进程,更不用说调用shell了。

答案 2 :(得分:1)

使用Python:

#SET:
os.environ["EnvVar"] = "1"

#GET:
print os.environ["EnvVar"]
相关问题