【问题标题】:linux Environment vars permanently added using python使用python永久添加的linux环境变量
【发布时间】:2016-08-03 11:24:50
【问题描述】:

我正在尝试使用从 python 脚本加载的 bash 脚本更新 linux 环境变量

1.- 我删除它:

del os.environ['USER']

2.- 我使用命令 lib 运行 bash 脚本:

status, output = commands.getstatusoutput('. ' + PATH +'/script.sh')

2.1.- 状态 = 0; output = '环境变量已更新'

所以.. 直到这里,一切似乎都正常

3.- 但是当我尝试测试 var 是否已经更新时:

print os.environ['USER']

我得到以下输出:

KeyError: 'USER'

【问题讨论】:

    标签: python linux environment-variables


    【解决方案1】:

    os.environ 不是您的环境,而是它的一种表示,它是在首次导入 os 模块时创建的。根据the documentation 的说法,一些平台将反映进程环境中os.environ 的变化。由于您运行子进程来更改环境,因此这些更改是针对 子进程 进行的,而不是针对运行 Python 代码的进程。

    无法将进程环境的更改反映在其父进程的环境中。

    【讨论】:

      【解决方案2】:

      环境由子进程从其父进程继承;更具体地说,父进程为子进程创建一个环境,默认情况下这与父进程相同。

      任何进程都不可能修改任何其他现有进程的环境。

      【讨论】:

        猜你喜欢
        • 2013-10-01
        • 2017-10-20
        • 2022-01-17
        • 1970-01-01
        • 1970-01-01
        • 2013-06-24
        • 2018-09-15
        • 2022-01-09
        相关资源
        最近更新 更多