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