2016-08-03 15 views
0

を使用して追加永久VARSLinux環境は、私はPythonスクリプトからロードされ、bashスクリプトを使用してLinux環境変数を更新しようとしているのpython

1.-私はそれを削除します。

del os.environ['USER'] 

2.-私は、コマンドlibでbashスクリプトを実行しました。lib:

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

2.1.- status = 0;出力= '環境VAR更新' の

..だからここまで、すべてがOK

3.-に動作します。しかし、私は、VARがalredy更新されたことをテストしようとしたときに思える:私は

print os.environ['USER'] 

次の出力を取得します。

KeyError: 'USER' 

答えて

1

os.environないご使用の環境が、それの表現、osモジュールが最初にインポートされるときに作成されます。 the documentationによれば、一部のプラットフォームはプロセスの環境内でos.environの変更を反映します。環境を変更するためにサブプロセスを実行するので、これらの変更はサブプロセスに行われ、Pythonコードが実行されるプロセスには適用されません。

プロセスの環境を親プロセスの環境に反映させる方法はありません。

1

環境は、親プロセスの子プロセスによって継承されています。より具体的には、親プロセスは子プロセス用の環境を作成し、デフォルトではこれは親プロセスと同じです。

他の既存のプロセスの環境を変更するプロセスはありません。

関連する問題