我正在尝试使用从python脚本加载的bash脚本更新linux环境变量
1.-我删除它:
del os.environ['USER']
2.-我使用命令lib:
运行bash脚本status, output = commands.getstatusoutput('. ' + PATH +'/script.sh')
2.1.- status = 0;输出='环境变更更新'
所以..直到这里,一切似乎都运转正常
3.-但是当我尝试测试var已经更新时:
print os.environ['USER']
我得到以下输出:
KeyError: 'USER'
答案 0 :(得分:1)
环境由子进程从其父进程继承;更具体地说,父进程为子进程创建一个环境,默认情况下它与父进程相同。
任何流程都无法修改任何其他现有流程的环境。
答案 1 :(得分:1)
os.environ
不您的环境,但它是第一次导入os
模块时创建的环境的表示形式。根据{{3}},某些平台会反映流程环境中os.environ
的变化。由于您运行子流程来更改环境,因此会对子流程进行更改,而不是对运行Python代码的流程进行更改。
无法在其父流程环境中反映流程环境的变化。