LoginSignup
1
1

More than 1 year has passed since last update.

PythonのSubProcessでPythonファイルを実行する

Posted at

少し苦戦したのと、古い情報が多かったので備忘録として

方法

他のコマンドを実行するときと同様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"])
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1