Pythonファイルをexe化する方法::PyInstallerの使い方を紹介します

久しぶりの投稿です。

Pythonで作ったプログラムが増えてくると、市販ソフトのようにexeファイルをダブルクリックして立ち上げたいと思うときがあります。

exe化するソフトとして、比較的有名なのは PyInstaller と cx_Freeze があります。

今回の記事では Pyinstaller の使い方を紹介します。次回の記事で cx_Freeze の使い方を紹介します。

特徴比較

Pyinstaller と cx_Freeze の特徴をまとめると以下となります。

PyInstallercx_Freeze
exe化の手間
exeファイル
のサイズ

(数十MB~数百MB)

(数十KB)
生成される
全ファイル
サイズ
小~中
(数十MB~数百MB)
中~大
(数百MB~数GB)
起動時間
(数秒~数十秒)

(コンマ数秒)
その他exe化できても立ち上がらない場合があるexe化できればほぼ立ち上がる

PyInstaller はexe化の手間も少なく生成される全ファイルサイズも比較的小さくすることができます。弱点は、exe化できてもソフトが立ち上がらないことがあることです。

原因は様々で、コードの書き方、import しているソフトの種類など状況によって変わります。

ググると色んな対処法がでてきますが、私の経験では一度 PyInstaller でexe化を試し、ダメだったら cx_Freeze でexe化する方が早いです。

最終目標がexe化することであれば、一つの方法にこだわる必要はありません。

対処法を調べる時間がない方は、別な方法を試してみるのも手です。

PyInstaller の使い方

PyInstaller をインストールしていない方は、コマンドプロンプトに以下のように入力し、インストールしてください。

> pip install pyinstaller

インストールが終わったら、exe化したいPythonファイルを所定のフォルダに入れてください。

例として、デスクトップに Test というフォルダを作ったとします。

このフォルダの中に、tomo.py という Pythonファイルを入れます。

次に、コマンドプロンプト画面で tomo.pyファイルが入っているフォルダの場所に移動します(ディレクトリを変えます)。

コマンドプロンプトに以下のように入力しエンターを押してください。

> cd C:\Users\ユーザー名\Desktop\Test

今回はデスクトップにTestというフォルダを作ったので、上記のような記載になります。

ちなみに、¥ユーザーと書かれた部分は使用しているパソコンによって異なるので各自の環境に合わせ修正してください。

私の場合は以下のようになります。

この状態でエンターを押してください。

すると以下の画面になります。ディレクトリが先ほど作成したTestフォルダに移動しました。

ここで、以下のように入力しエンターを押します。

すると、Testフォルダ内にdistというフォルダができます。

このdistフォルダの中にexe化されたファイルができます。

ちなみに、–noconsoleと–onefile は省略可能です。

–noconsole はコンソール(コマンドプロンプト)の黒い画面を表示しないようにします。–onefile は関連するファイルを1つにまとめてexeファイルを作成します。

exe化が成功するとコマンドプロンプトに以下のように表示されます。

アイコンを設定したい場合

exeファイルに自分の好きなアイコンを設定したい場合があると思います。

その場合、Testフォルダ内にアイコンファイル(xxx.ico)を入れ、コマンドプロンプトで以下のように入力してエンターを押します。

すると、Testフォルダ内のdistフォルダの中に自分の好きなアイコンが設定されたexeファイルができます。

例えばこんな感じ。ちょっと見にくいですが、鬼滅の刃の主人公 炭治郎の顔をアイコンにしたexeファイルができます。

最終的にTestフォルダ内は以下のような構成になります。

今回作成したexeファイルは247MBでした。exe化前の tomo.py ファイルは1KBですからファイルサイズは約25万倍!です。ちなみに、Testフォルダの全容量は500MBです。exe化前のファイル(tomo.py、tanjiro.ico:合計9KB)容量と比べ約56万倍です。

生成される全ファイルサイズは大きくなりますが、メリットとして以下があります。

  • ダブルクリックで簡単にソフトが開ける
  • Pythonがインストールされていないパソコン環境でもexeファイルは使える
  • 自分の作ったソフトを気軽に配布できる

比較的簡単にPythonファイルがexe化できるので、興味のある方は是非試してみてください。

まとめ

  • PyInstaller を使うと比較的簡単にexeファイルが作れる。
  • ファイルサイズは、元のpythonファイルの数万~数十万倍(数KB ⇒ 数百MB)
  • ただし、PyInstaller の場合、exe化できてもファイルが開けない場合がある。原因は様々。