我正在尝试为文件生成加密密钥,然后将其保存以供下次运行脚本时使用。我知道这不是很安全,但它只是一个临时解决方案,用于保护密码不被git repo。
subprocess.call('export KEY="password"', shell=True)
返回0
并且什么都不做。
在我的bash提示符中手动运行export KEY="password"
在Ubuntu上运行正常。
答案 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"]