1. ホーム
  2. python

[解決済み] Pythonのサブプロセス/Popenを環境変更した場合

2022-03-15 23:23:53

質問

外部コマンドを少し変更した環境で実行することは、よくあるケースだと思うのですが。私もそうすることが多いです。

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

もっといい方法があると直感したのですが、大丈夫でしょうか?

解決方法は?

私が思うに os.environ.copy() は、現在のプロセスのos.environを変更するつもりがない場合は、より良い方法です。

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