ターミナルウィンドウを表示させずに実行する方法(pythonw/pyw)
はじめに
Pythonで作成したスクリプトをダブルクリックして実行すると、ターミナルウィンドウが開きます。
ターミナルウィンドウは、標準出力や標準エラー出力(例外メッセージなど)を確認するには便利ですが、以下のようなケースでは出したくない場合もあります。
<<ターミナルウィンドウを表示させたくないケース>>
①タスクスケジューラから起動するなどバックグラウンドで実行したい場合
②GUIアプリケーションのような他にメインウィンドウがある場合

開発環境
OS : Windows 11 Pro
Python:3.13.2
使用ライブラリ:なし
pythonの実行ファイル
pythonスクリプトを扱える実行ファイルは2種類存在します。
python.exe と pythonw.exe です。

pythonw.exe
python.exe と pythonw.exe の違いは、ターミナルウィンドウを表示させるかさせないかの違いになります。
実行ファイル名 | ターミナルウィンドウ表示 | 関連付け拡張子 |
---|---|---|
python.exe | あり | .py |
pythonw.exe | なし | .pyw |
使用例
拡張子変更
pythonw.exe に関連付けされている拡張子は「.pyw」であるため、pythonファイルの拡張子を「.pyw」としておけば、ダブルクリック実行時にターミナルウィンドウが表示されなくなります。

コマンドライン実行
コマンドラインから実行する場合は、「pyw」または「pythonw」を使用します。
pyw sample.py
pythonw sample.py
おわりに
標準出力がされないため、開発中は「python.exe」を使用し、運用時に「pythonw.exe」を使用するのが良いと考えます。また、実運用時でもエラーなど発生することがあるため、別途ロギング処理を追加しておくなどのエラー対策も必要と考えます。
コメント