Pythonプログラムをダブルクリックで使う

コラム/ラボノート公開更新広告

今回はファイル上でダブルクリックしてPythonプログラムが実行できるようになる方法を紹介します。

Windows 11で実行しており、Macではそのまま実行できない可能性があります。この点に留意してください。

この記事の内容
  1. バッチファイル(.bat)でPythonプログラムを実行
  2. PyInstallerでPythonプログラムを実行ファイル(.exe)に変換
  3. バッチファイルと実行ファイルの使い分け
  4. (発展)定期実行できるようにする
  5. 関連記事

バッチファイル(.bat)でPythonプログラムを実行

まずは簡単なバッチファイルでの実行方法です。

Pythonファイル(.py)を実行する指示を出すファイルを作成します。

バッチファイルの作成

メモ帳で以下のコードを記載します。

「ファイル名.py」には自身が作成したPythonプログラムのファイル名を記載します。

@echo off
python ファイル名.py
pause

「名前を付けて保存」の際に名前の最後に「.bat」をつけて保存します。

これでバッチファイルに変換できます。

ファイル名作成イメージ
ファイル名作成イメージ

バッチファイルをダブルクリックで実行

バッチファイルとPythonファイルを同じフォルダに保存します。

作成したバッチファイルをダブルクリックすることでPythonプログラムが実行されます。

バッチファイルとPythonファイルの保存先が違う場合は、例えば以下のようにPythonファイルの位置を指定したコマンドにしなければなりません。

@echo off
python C:\Users\ユーザー名\Documents\ファイル名.py
pause

難しい場合はバッチファイルのショートカットを作って好きなところへ配置し、それをダブルクリックで実行しても構いません。

上段は .bat と .py が同じフォルダーにあり、ファイル名だけでよい。下段は別のフォルダーにあり、.py の場所を全部書いたコマンドが要る。
同じフォルダーならファイル名だけ。別の場所なら .py の場所を全部書く

PyInstallerでPythonプログラムを実行ファイル(.exe)に変換

次はPyInstallerを使ってPythonファイルそのものを実行ファイルに変換します。

PyInstallerのインストール

pipを用いたインストールの詳細手順は省きます。

PyInstallerを以下のコマンドでインストールします。

pip install pyinstaller

Pythonスクリプトを実行ファイルに変換

「コマンドプロンプト」や「Visual Studio Codeのターミナル」でPyInstallerの変換コマンドを実行します。

実行するためには、まずPythonファイルを保存している位置まで移動する必要があります。

例えば以下のようにcd(カレントディレクトリ)コマンドを使います。

cd C:\Users\ユーザー名\Documents

バッチファイル作成時と同様に「ファイル名.py」には自身が作成したPythonプログラムのファイル名を記載します。

pyinstaller ファイル名.py

新たに「dist」というフォルダに実行ファイルが保存されています。

一緒に生成されている「build」というフォルダは実行ファイルを作るときに使われるものですので、正常に作成された後は不要です。

pyinstaller を実行すると、.py のあるフォルダーに build と dist ができる。build は作成用で不要、dist に実行ファイルが入る。--onefile を付けると dist の中が .exe 1つになる。
実行ファイルは dist に入る。--onefile で1つにまとまる

distフォルダ内のファイルを1ファイルとしてまとめる場合は以下のコマンドで実行します。

ただし、実行ファイルの動作が少し遅くなります。

pyinstaller --onefile ファイル名.py

実行ファイルをダブルクリックで使用

PyInstallerによって作成された実行ファイルをダブルクリックすることでPythonプログラムが実行されます。

バッチファイル生成時とは異なり、実行ファイルをどこに保存していても問題ありません。

実はPythonをインストールしていないPCでも実行できます。

実行ファイルの中にPythonや使っているライブラリの情報が一緒に保存されているためです。

(参考)Pathlibが影響するエラー

最新のpyinstallerにはPathlibというPythonの標準ライブラリと互換性がなくなっていました。

アンインストールすると問題なく実行できます。

The ‘pathlib’ package is an obsolete backport of a standard library package and is incompatible with PyInstaller. Please remove this package (located in C:\Users\……) using
“C:\Users\…………\python.exe” -m pip uninstall pathlib
then try again.

以下のコメントを参考に、PyInstallerのバージョンを5.7にダウングレードすることで解決しました。

I’ve experienced the same problem. I managed to solve it by downgrading pyInstaller to 5.1 (from 5.8) without touching pathlib. An additional possibility to consider.

How to convert python file to exe? The ‘pathlib’ package is an obsolete backport of a standard library package and is incompatible with PyInstaller(別サイト)

pip install pyinstaller==5.7

ちなみにコメントの方は5.1にダウングレードしたそうですが、バージョン5.5、5.6、5.7も試してうまくいっています。

バッチファイルと実行ファイルの使い分け

バッチファイルと実行ファイルで方法が2種類ありますが、どのように使い分けるのでしょうか?

まずはバッチファイルで考える

ダブルクリックして実行するだけであればバッチファイルを作成する方が分かりやすくて簡単です。

実際に動かすPythonファイルがそのまま残っているため編集作業も楽です。

ただPythonファイルとバッチファイルの保存先に少し気をつけなければなりません。

実行ファイルの利点

実行ファイルにはバッチファイルにはない以下のような利点があります。

  • Pythonプログラムを使いたいデバイスにPythonや必要なライブラリをインストールしなくて良い
  • Pythonコードの直接的な閲覧や改ざんが難しくなりセキュリティが向上する

例えば現場用PCにPythonの環境を入れたくない場合でも、実行ファイル(.exe)の形にすることで簡単に現場移行できるようになります。

バッチファイルは、使うPCに Python 本体・ライブラリ・.py・.bat が要る。実行ファイルは .exe だけで、Python は不要。
バッチファイルは Python を入れた PC が前提。.exe は単独で動く

(発展)定期実行できるようにする

Windowsのタスク スケジューラを活用することで、先ほど作成したバッチファイルや実行ファイルを定期実行できるようになります。

具体的には、ダブルクリックして実行する操作をタスク スケジューラにお任せして自動で実行してもらいます。

タスク スケジューラを起動しタスク定義の画面を開く

  1. スタートメニューから「タスク スケジューラ」を起動する
  2. 左タブにある「タスク スケジューラ ライブラリ」を選択する
  3. 右タブにある「タスクの作成」を選択する
タスク スケジューラの操作画面
タスク スケジューラの操作画面
タスク定義の画面
タスク定義の画面

タスクの定義をする

  1. 「全般」タブでタスクの名前や説明を入力し、適切なセキュリティオプションを選択する
  2. 「トリガー」タブで「新規」をクリックし、開始日時、実行間隔、繰り返し回数などを指定する
  3. 「操作」タブで「新規」をクリックし、アクションの種類として「プログラムの開始」を選択する
  4. プログラム/スクリプトの欄に実行したいバッチファイル(.bat)や実行ファイル(.exe)を指定する
  5. 必要に応じて「条件」タブと「設定」タブで、タスクの実行条件やその他のオプションを調整する
「トリガー」タブの新規設定画面
「トリガー」タブの新規設定画面
「操作」タブの新規設定画面
「操作」タブの新規設定画面
トリガータブで実行する日時と間隔を、操作タブで起動する .bat か .exe を決める。タスク スケジューラが自動で起動し、Python プログラムが実行される。
トリガーで「いつ」、操作で「何を」。あとは自動で起動する

関連記事

データ分析の進め方

スケーリング(標準化・正規化・基準化)の違いと使い分け

プラント制御へのAIの活用事例

ラボノートの記事

ポッドキャストで聴く

技術者かねまるの「プラントライフ」(化学や工場の話をする番組。各回のページで聴けて、文字起こしも読めます)

関連する書籍

執筆・監修のご依頼は、ご相談のページで受け付けています。