我正在尝试添加一个环境变量。当我在cmd中写set
时,我希望它在那里。如何在那里添加?
我试过这样做:
def read_json_dump():
with open("apa.json") as f:
a = json.load(f)
for key, value in a.items():
project_recipient_list = value['EMAIL']
os.environ["$DEFAULT_RECIPIENTS"] = project_recipient_list
当我写print os.environ
时,我能够找到环境变量,但在cmd中写set
时却找不到。
答案 0 :(得分:3)
使用os.environ已经足够了,如果你想保留变量你可以使用setx命令,这些env vars在Windows上不会持续存在,例如:
import os
os.system("setx $DEFAULT_RECIPIENTS foo@foo.com")
答案 1 :(得分:2)
Per http://code.activestate.com/recipes/159462-how-to-set-environment-variables/看起来你不能从python中修改当前程序的环境变量并使它们保持不变,但是通过从bat文件运行python代码也可以解决这个问题,该文件也设置了所需的变量
可以使用os.environ读取环境变量。可以使用os.putenv(key,value)编写它们(仅用于子shell)。但是,没有直接的方法来修改运行python脚本的全局环境。上面[链接]上显示的间接方法将set命令写入临时批处理文件,该文件位于封闭环境中,使用的是另一个批处理文件启动python脚本。
...可以评估任意表达式,并将结果分配给环境变量。为安全起见,eval()函数可以替换为str()。
通常,应避免写入环境变量,以支持通过管道或公共数据文件共享值。然而,当它无法避免时,上述技术是一种有效的,虽然是黑客的解决方法。
答案 2 :(得分:0)
os.environ
仅在python程序执行期间设置环境变量。
它不会反映在外面。