Python学院
メールマガジンバックナンバー

vol.18

  • コツ・知識
  • メールマガジン

Pythonで作成した自動化ツールを、第三者に配布する方法(実行ファイル・exeファイル)

今回のテーマは「Pythonで作成した自動化ツールを、第三者に配布する方法」です。

結論から言うと、「実行ファイル化」することで、自分のPC上で作成したPythonのプログラムを他の方のPC上でも動かすことができるようになります。
この「実行ファイル化」ができれば、Pythonで作成したプログラムを誰のPC上でも動かすことができ、「組織展開」が実現できます。

当記事を通して、Pythonで作成した自動化ツールを第三者に配布する方法について理解し、ぜひPython自動化ツールの組織展開を実現していただければ幸いです。

(約5分で読めます)

~~~~~~~~~目次~~~~~~~~~
1. 実行ファイルとは
2. 実行ファイルを作成するメリット
3. 「PyInstaller」による実行ファイル作成のイメージ
4. 実行ファイルを作成してみよう!
5. 最後に
~~~~~~~~~~~~~~~~~~~~

1. 実行ファイル(exeファイル)とは

Pythonで他者に配布する「実行ファイル」とは、ダブルクリックで、そのファイル単体でもプログラムが実行できるもののことを指します。実行ファイルのWindowsの拡張子は以下の画像のように「.exe」となっています。



この「exe」というのは、「実行する」という意味の英単語「execute」の略です。
自分のPC上でPythonのプログラムを作成して実行する際、プログラムが記述されたファイルのみでPythonのプログラムが動くわけではありません。実際はPC内の様々なファイルとデータを参照し、動いています。
PC上にPythonをインストールすることで、動作に必要なファイル一式がPC上に生成され、自身のPC上でPythonプログラムを動かすことができるようになります。

exeファイルのような「実行ファイル」は、そのファイル単体で動作が完結します。
つまり、Pythonプログラムを動作させるために必要なファイル一式がPC上に存在しなくても(Pythonのインストールができていなくても)、Pythonプログラムを動作させることができます。

【PR】「実行ファイル化」を含むPythonプログラミングを学べる研修はコチラ
 ・Pythonの基礎知識があり、業務自動化プログラム開発のテクニックを学びたい方向けの研修
 ・Pythonの基礎知識があり、ExcelとWebからの情報収集の自動化をしたい方向けの研修


2. 実行ファイル(exeファイル)を作成するメリット

実行ファイルを作成することで、「Pythonの開発環境が構築されているPC上で作成したPythonプログラムを、開発環境が構築されていないPC上で実行する」ことができます。

簡単に言うと、「誰のPC上でもPythonプログラムを動かせる」ようになります。

例えばExcel操作を自動化するためのプログラムを作成し、それを組織内の他の方たちにも使ってほしい場合について考えてみます。
組織内の他の方たちにPythonとプログラムの動作に必要なライブラリ(Pythonの便利ツール)をインストールしてもらうのではなく、Pythonで作成したプログラムを実行ファイルに変換し、実行ファイルを配布します。
そうすると、Pythonを動作させるための環境がなくても、Pythonのプログラムを動作させることができるようになります。


実行ファイルを受け取った相手は、自分のPC上で実行ファイルをダブルクリックするだけでPythonの自動化プログラムを実行することができるため、非常に便利です。組織にPython自動化プログラムを展開することができるようになるため、DX推進などにも寄与できます。


3. 「PyInstaller」による実行ファイル作成のイメージ

Pythonプログラムが記述されたファイルを実行ファイルに変換するには、「PyInstaller」というライブラリを使います。

PyInstallerを使うことで、下記をまとめて実行ファイルにすることができます。
・Python本体
・作成したPythonプログラム
・Pythonプログラムで使用しているモジュール(メインのプログラムと一緒に動作しているファイルです)


※PyInstallerで作成した実行ファイルは、OS依存となります。
Windowsで作成した実行ファイルはWindows上でのみ動作し、Macで作成した実行ファイルはMac上でのみ動作します。
また、まれにPyInstallerが正常に動作しない環境が存在します。その場合は、実行ファイルの変換ツールとしてnuitkaやcx_freezeというツールをご利用ください。

■nuitka(ヌイトカ・ヌーカ・ニューイカ)
偽陽性(セキュリティソフトウェアに誤って引っかかること)は出にくく、実行速度があがる場合も多いです。
一方、ファイルを作成するためにPyInstallerよりもかなり時間がかかります。
■cx_freeze(シーエックスフリーズ)
起動が早く偽陽性はほとんど出ません。ファイルサイズも小さくなりやすいです。
しかし、別途setup.pyファイルの作成が必要など、手間はPyInstallerやnuitkaに比べて多くなります。


4. 実行ファイルを作成してみよう!

それでは、実際に実行ファイルを作成して実行するところまで体験してみましょう。なお、PC上にPythonが既にインストールされていることを前提に説明します。

以下の手順に沿って、動作確認を行います。
(1)PyInstallerのインストール
(2)実行ファイルの作成
(3)動作確認

順に見ていきましょう。

(1)PyInstallerのインストール

まず、ライブラリ「PyInstaller」をインストールする必要があります。

①Windowsであればコマンドプロンプト、Macであればターミナルを開く
②以下のコマンドを実行する

pip install pyinstaller

これで、PC上にPyInstallerをインストールすることができます。

(2)実行ファイル化の対象となるファイルの作成

通常、Pythonのプログラムは拡張子「.py」形式のファイルに記述します。

①デスクトップに「実行ファイル練習」という名前のフォルダを作成する
②作成したフォルダ内に「practice.py」という名前のファイルを作成する



この「practice.py」のPythonファイルにプログラムを書き込みます。
③メモ帳を開く
④「practice.py」のファイルをメモ帳の上にドラッグ&ドロップして開く
⑤「practice.py」にPythonのプログラムを記述する
ここでは、プログラムを実行するとダイアログが表示されるようにします。



⑥以下のコードをコピーし、「practice.py」のファイルに貼り付ける

from tkinter import messagebox

messagebox.showinfo('実行ファイル', '実行ファイルの動作確認が完了しました!')

⑦「Ctrl + s」でファイルを保存する
これで、実行ファイル化の対象となるPythonファイルの作成が完了しました。

(3)実行ファイルの作成

Windowsを例にご説明しますが、Macでも手順は変わりませんので、適宜読み替えていただければと思います。

①エクスプローラー上で先程作成した「実行ファイル練習」フォルダに移動する



②エクスプローラーのアドレスバーにカーソルを当ててアクティブにし、「cmd」と入力してEnterキーを押す
この操作をすることで、「実行ファイル練習」フォルダからコマンドプロンプトを開くことができます。



③以下のコマンドを実行する

pyinstaller practice.py --onefile

--onefile」はオプションです。このオプションを付けることで、作成される実行ファイルが一つにまとまります。

上記のコマンドを入力することで、Pythonプログラムが書かれた「practice.py」から実行ファイルを作成することができます。
これで、実行ファイルの作成が完了します。

(4)動作確認

①「dist」フォルダを開く
実行が完了すると、「実行ファイル練習」フォルダ内に「dist」という名前のフォルダが作成されます。



中に「practice.exe」という名前の実行ファイルが作成されていることが確認できます。



②この「practice.exe」の実行ファイルをダブルクリックする
すると、画面上にダイアログが表示されます。



③「OK」ボタンを押す
「OK」ボタンを押すと、ダイアログが消えます。

これで、実行ファイル作成の一連の流れを体験することができました。
今回は簡単なプログラムを実行ファイル化しましたが、プログラムの量が多くなっても同じ手順で実行ファイルを作成することができます。

作成した「practice.exe」の実行ファイルを第三者に配布することで、Pythonの環境構築ができていないPC上でも、実行ファイルをダブルクリックすることでPythonのプログラムを動作させることできます。

これで、Python自動化ツールの「組織展開」ができるようになりました。


5. 最後に

今回は「Pythonで作成した自動化ツールを第三者に配布する方法」をご説明しました。
Pythonプログラムの実行ファイル化ができるようになれば、自動化ツールの「組織展開」が可能になります。

弊社でも、このメルマガで説明したものと同じ流れで自動化ツールの第三者への配布を行っています。実行ファイルをダブルクリックするだけで業務の自動化ができるようになると、利用者から喜ばれます。

自分自身の業務を自動化して「楽になる」ために、また他者の業務自動化を実現して「喜ばれる」ために、是非Pythonによる現場業務の自動化、また自動化ツールの第三者への配布に取り組んでいただければ幸いです。

最後までお読みいただき、ありがとうございます。
それでは、次回もお楽しみに!

関連研修