初心者でもPythonを使ってみよう

趣味と実益を兼ねたPython学習記

【スポンサーリンク】



【pyinstaller】スクリプトファイルをexeファイル化する方法【Python】

pyinstallerは、Pythonスクリプトファイル(.py)をexeファイル化することのできるモジュールです。

pyinstallerを用いてexeファイル化することにより、PythonがインストールされていないPCでもスクリプトを実行できるようになります。

pyinstallerでスクリプトファイルをexeファイル化する方法をまとめました。

pyinstallerでexe化する方法

インストール・準備

まずはpyinstallerをインストールしていきます。

通常のモジュールと同様に、

pip install pyinstaller

でインストールすることができます。

次に、exeファイル化するスクリプトファイルを準備します。

今回は例として、tkinterの画面を表示するだけの簡単なスクリプトを作成します。

以下のコードを記述した「test.py」を準備しておきます。

import tkinter

f = tkinter.Tk()
f.mainloop()

以上で準備は完了です。

[↑ 目次へ]

使い方の基本

先ほど作成したスクリプトファイルをexeファイル化していきます。

方法は非常に簡単で、コンソール画面で

pyinstaller test.py

を実行するだけです。

実行して少し待つと、「test.py」と同じフォルダに、「pycashe」フォルダ、「build」フォルダ、「dist」フォルダ、「test.spec」が自動で作成されます。

「dist」フォルダ内の「test」フォルダにある「test.exe」が、「test.py」をexeファイル化したものになります。

「test.exe」を実行すると以下の様なtkinterのメイン画面が表示され、スクリプトファイルがexeファイル化されていることが確認できます。

f:id:vigilantPotato:20190306203314j:plain

[↑ 目次へ]

コンソール画面を非表示

上記の例で作成されたexeファイルを実行すると、tkinterのメイン画面とともにコンソール画面が一緒に出現してしまいます。

f:id:vigilantPotato:20190306203353j:plain

コンソール画面を非表示にしたい場合は、exeファイル化時にnoconsoleオプションを付けて実行します。

例:

pyinstaller test.py --noconsole

noconsoleオプションを付けて作成したexeファイルは、実行時にコンソール画面は表示されません。

[↑ 目次へ]

単独ファイル化

pyinstallerを実行すると、exeファイル以外にも大量のファイルが自動的に作成されてしまい、exeファイルはそれら無しでは動作しません。

exeファイル単独で動作させたい場合は、exeファイル化時にonefileオプションを付けて実行します。

例:

pyinstaller test.py --onefile

onefileオプションを付けると、exeファイル以外の関連ファイルは作成されませんが、起動にかかる時間が少し長くなるようです。

[↑ 目次へ]

アイコンの設定

exeファイルに使用されるアイコンのデフォルトは以下の画像になります。

f:id:vigilantPotato:20190306203619j:plain

exeファイルのアイコンを自由に設定したい場合は、iconオプションを用います。

今回の例では、exeファイルを以下のアイコンにしてみます。

f:id:vigilantPotato:20190306204008j:plain

アイコンの画像をスクリプトファイルと同じフォルダに保存しておきます。

アイコンのファイル名が「test_icon.ico」の場合は、以下のようにオプションを設定して実行します。

例:

pyinstaller test.py --ico=test_icon.ico

これで、exeファイルのアイコンが「test_icon.ico」に設定されます。

f:id:vigilantPotato:20190306205740j:plain

[↑ 目次へ]

複数のオプション

オプションは複数個繋げて実行可能です。

コンソール画面非表示、単独ファイル化、アイコン設定をしたい場合は、以下の様にオプションを設定して実行します。

例:

pyinstaller test.py --noconsole -- onefile --ico=test_icon.ico

[↑ 目次へ]

exeファイルが起動しない場合

exeファイルは生成されるが、クリックしても起動しない・・・という場合は、

Pythonのバージョンを3.6にする

を試してみてください。

[↑ 目次へ]