Pythons subprocess モジュールを使用して一連のコマンドを実行しようとしていますが、実行する前に export でシェル変数を設定する必要があります。もちろん、シェルは永続的ではないように見えるので、後でコマンドを実行すると、これらのシェル変数は失われます。
これについて何か方法はありますか?/bin/sh プロセスを作成することはできますが、そのプロセスで実行されたコマンドの終了コードを取得するにはどうすればよいでしょうか?
Pythons subprocess モジュールを使用して一連のコマンドを実行しようとしていますが、実行する前に export でシェル変数を設定する必要があります。もちろん、シェルは永続的ではないように見えるので、後でコマンドを実行すると、これらのシェル変数は失われます。
これについて何か方法はありますか?/bin/sh プロセスを作成することはできますが、そのプロセスで実行されたコマンドの終了コードを取得するにはどうすればよいでしょうか?
subprocess.Popen
サブプロセスの環境として使用する辞書であるオプションの名前付き引数env
を取ります (「シェル変数」として説明しているもの)。必要に応じて dict を準備し (コピーから始めて、必要に応じて変更することもできます)、実行するすべての呼び出しos.environ
に渡します。subprocess.Popen
アレックスは完全に正しいです。例を挙げると
current_env=environ.copy()
current_env["XXX"] = "SOMETHING" #If you want to change some env variable
subProcess.Popen("command_n_args", env=current_env)