少し苦戦したのと、古い情報が多かったので備忘録として
方法
他のコマンドを実行するときと同様subprocess.run()
を利用する。
以下、subprocess.run()
が書かれたPythonファイルと同階層のa.py
を実行する場合のプログラムを示す。また、各モジュールのimport
は省略する。
subprocess.run("Python3 a.py",shell=True)
shell=True
がないとPythonインタプリタへのパス(環境変数)が通っていない状態なので、shell=True
なしでやる場合にはPython3
の代わりにインタプリタへのパスを直接渡す。
sysモジュールのsys.executable
には、インタプリタへの絶対パスが入っているので、これが利用できる。
subprocess.run([sys.executable,"a.py"])
ちなみに、先程書いたようにshell=True
なしではインタプリタへのパスが通っていないので、
以下のプログラムは実行するファイルが見つからずにエラーになる。
#エラー
subprocess.run(["Python3","main.py"])