環境を変更したPythonサブプロセス/Popen 質問する

環境を変更したPythonサブプロセス/Popen 質問する

環境を少し変更して外部コマンドを実行することは、非常に一般的なケースだと思います。私は通常、次のように実行します。

import subprocess, os
my_env = os.environ
my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"]
subprocess.Popen(my_command, env=my_env)

もっと良い方法があるような気がしますが、大丈夫でしょうか?

ベストアンサー1

os.environ.copy()現在のプロセスの os.environ を変更するつもりがない場合は、次の方が良いと思います。

import subprocess, os
my_env = os.environ.copy()
my_env["PATH"] = f"/usr/sbin:/sbin:{my_env['PATH']}"
subprocess.Popen(my_command, env=my_env)

おすすめ記事