如何添加我添加的环境变量?

时间:2016-08-11 11:36:41

标签: python windows

我正在尝试添加一个环境变量。当我在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时却找不到。

3 个答案:

答案 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程序执行期间设置环境变量。

它不会反映在外面。