はじめに
Pythonで便利なスクリプトを作ったはいいけど、毎回コマンドプロンプトを開いて python script.py
って打つの、地味に面倒くさいですよね?
pyinstallerなどで「exe化すればいいな」と思いきや、アンチウイルスソフトにマルウェアと間違えられてヒヤッとした経験、ありませんか?(私はあります😇)
今回は、Pythonスクリプトを exe化せずに Windowsのタスクバーから一発で起動する方法を紹介します。
この記事でわかる・できること
- Pythonスクリプトをexe化せずにタスクバーから簡単に起動できるようになります
- 仮想環境 (venv) を使っているスクリプトも、迷わずタスクバーから起動できます
- GUIアプリなど、コンソールウィンドウを非表示にして起動する方法がわかります
この記事の対象者
- Pythonスクリプトを日常的に使っていて、もっと手軽に起動したい方
- スクリプトのexe化でマルウェア誤検知に遭遇した、または避けたい方
- 別にスクリプトを誰かに配るつもりもない人
- venv(仮想環境)でPythonスクリプトを開発・実行している方
- TkinterやPyQtなどで作ったGUIアプリを、起動時の黒い画面(コンソール)なしでスマートに実行したい方
動作環境・使用するツールや言語
- Windows 10 / Windows 11 (他のバージョンでも同様に可能と思われます)
- Python (バージョンは問いませんが、venvのパス構造が若干異なる場合があります)
なぜexe化を避けたいのか?
Pythonスクリプトを単一の実行ファイル(.exe)に変換するツール(PyInstallerなど)は非常に便利ですが、いくつかデメリットがあります。
- マルウェア誤検知のリスク: 作成したexeファイルが、残念ながらアンチウイルスソフトにマルウェアとして誤検知されることがあります。信頼できるソフトでも起こりうるので、びっくりする。
- ビルドの手間: スクリプトを少し修正するたびに、再度exe化のビルドプロセスが必要になります。
- ファイルサイズ: 単純なスクリプトでも、Pythonインタプリタやライブラリを含むため、exeファイルが比較的大きくなりがちです。
そこで今回は、スクリプトファイルのままやります。
解決策:ショートカットファイルを作る
Windowsのショートカットファイルをいじるといい感じにいけます。
基本的な流れはこんな感じ。
- Python実行ファイル(
python.exe
やpythonw.exe
)が、目的のスクリプトファイル(.py
)を実行するように指示するショートカットを作成。 - 必要に応じて、スクリプトが正しく動くための「作業フォルダー」を設定。
- 作成したショートカットをタスクバーにピン留め
では、具体的な手順をステップ・バイ・ステップで解説していきます。
手順1:Pythonスクリプトのショートカットを作成
まずは、スクリプトを起動するためのショートカットを作ります。
-
ショートカットの作成場所へGO!
デスクトップなど、分かりやすい場所で右クリックし、「新規作成」→「ショートカット」を選択します。もしくはpyスクリプトを右ドラッグしてショートカットを作成。 -
項目の場所を入力
ここに、Pythonにスクリプトを実行させるためのコマンドを入力します。基本形はこれ。
python.exe "C:\path\to\your\script.py"
-
python.exe
:
Pythonをインストールした際に環境変数PATHを設定していれば、これだけでOKです。もし「そんなコマンドないよ!」と怒られたら、python.exe
のフルパス(例:C:\Users\YourName\AppData\Local\Programs\Python\Python311\python.exe
)を指定してください。
py.exe
ランチャー (C:\Windows\py.exe
) を使うのも便利です。 -
"C:\path\to\your\script.py"
:
実行したいPythonスクリプトのフルパスをダブルクォーテーション"
で囲んで指定します。パスに空白が含まれる場合は、ダブルクォーテーションが必須です!
-
venv(仮想環境)で作った場合は実行ファイルを仮想環境のPython.exeにする必要があります。
"C:\path\to\your\project\venv\Scripts\python.exe" "C:\path\to\your\project\script.py"
入力したら「次へ」をクリック。
-
ショートカットに命名
分かりやすい名前を付けてあげましょう(例: 「マイ便利ツール」)。入力したら「完了」! -
(任意) アイコンを着せ替え
デフォルトだとPythonのアイコンですが、変えたい場合は、作成したショートカットを右クリック → 「プロパティ」 → 「ショートカット」タブ → 「アイコンの変更」でお好きなアイコンにチェンジ!
手順2:作業フォルダーの設定
スクリプトが設定ファイルやデータファイルを相対パス(例: ./data/input.csv
)で読み書きする場合、スクリプトがどこで実行されているか(=作業フォルダー)が正しくないと、「ファイルが見つかりません!」エラーで泣きを見ることになります。
- 作成したショートカットを右クリックし、「プロパティ」を選択。
- 「ショートカット」タブにある「作業フォルダー」の欄に、スクリプトが存在するフォルダーのパス、またはスクリプトが基準としたいフォルダーのパスを入力します。
例えば、スクリプトがC:\MyScripts\Tool\my_tool.py
で、データファイルがC:\MyScripts\Tool\data\
にあるなら、「作業フォルダー」はC:\MyScripts\Tool\
とします。
手順3:タスクバーにピン留め
作成したショートカットを、タスクバーにドラッグ&ドロップすると
置かれました。後はタスクバーのアイコンをクリックするだけで、いつでもPythonスクリプトが起動します!
【応用】GUIアプリのコンソール消す (pythonw.exe
)
TkinterやPyQtなどでGUIアプリケーションを作った場合、起動時に一瞬黒いコンソールウィンドウが表示されるのが気になる。
そんな時は、python.exe
の代わりに pythonw.exe
を使います。
pythonw.exe
は、コンソールウィンドウなしでPythonスクリプトを実行するためのものです。(w
は windowless の w
です。多分)
ショートカットの「項目の場所」を以下のように変更します。
pythonw.exe "C:\path\to\your\gui_script.py"
または、venv環境と組み合わせるなら、
"C:\path\to\your\project\venv\Scripts\pythonw.exe" "C:\path\to\your\project\gui_script.py"
-
pythonw.exe
もpython.exe
と同じ場所にあります。PATHが通っていればpythonw.exe
だけでOK。 -
py.exe
ランチャーを使っている場合はpyw.exe
が対応します。
注意点:
pythonw.exe
を使うと、print()
による出力やエラーメッセージがコンソールに表示されなくなります。デバッグ時には python.exe
を使い、完成したら pythonw.exe
に切り替えるのがおすすめです。
どうしてもログを見たい場合は、ファイルに書き出すなどの工夫が必要になります。
(補足) その他の方法
今回はショートカットを使った一番お手軽な方法を紹介しましたが、他にもこんな方法があります。
-
バッチファイル (.bat) 経由:
簡単なコマンドを記述したバッチファイルを作成し、そのバッチファイルのショートカットをピン留めする方法。コンソールが一瞬表示されることがあります。 -
VBScript (.vbs) 経由:
VBScriptを使ってPythonスクリプトを呼び出す方法。コンソールを完全に非表示にしやすいですが、少し記述が複雑になります。
これらは特定の状況で役立つことがありますが、まずは本記事で紹介したショートカットの方法をマスターするのがおすすめです!
まとめ
これで、Pythonスクリプトをexe化する手間やマルウェア誤検知のリスクを気にすることなく、タスクバーからサッと起動できるようになったので満足しています。
特に、
- 作業フォルダーの設定
- venv環境の場合は、venv内の
python.exe
を指定すること - GUIアプリでコンソールを非表示にしたい場合は
pythonw.exe
を使うこと
この3つのポイントを押さえておけば、大抵のスクリプトは快適にタスクバーから呼び出せるはずです。