PythonスクリプトをPyinstallerで軽量exe化

Pythonスクリプトのexe化 Pyinstallerで軽量

Pythonで作成した自動処理をexe化(エグゼ)すると、どのパソコンでも同じ自動処理を実現できます。exe内にPython環境が含まれているので、Python環境がない他のPCでも同じ処理が動きます。※Windows環境

例えば、誰かがMicrosoftオフィスのExcelでVBAやマクロ機能のファイルを作成した時に、違うPC環境で同じ自動処理が実行できるのと似ています。自動処理が作成できなくても、ボタンを押すだけで自動処理されるツールを使いこなすことは、人手不足の今重要です。

基本的に、Pythonのexeを1クリックすれば、対象自動処理を誰のどのPCでも実行できますので、DX化による効率化が可能です。本記事では、Pythonスクリプトをexe化するPyinstallerライブラリの利用方法と利用例、注意点について解説いたします。

目次

Pythonスクリプトをexe化するPyinstallerの紹介

Pythonスクリプトをexe化すれば自動実行の配布が用意

Pythonの環境構築をいちからチャレンジしようと思う方は稀で、業務に関わるほとんどの方はプログラムに興味がありませんし、ハードルが高いと思い込んでいます。Pythonで作成したスクリプトをexe化すれば、プログラムの配布が可能となり、配布先でボタンクリックだけで利用することができます。開発環境の構築が配布先で必要ないので、面倒な作業が要らず、自動処理できるのは大きなメリットです。

Pythonスクリプトをexe化はPyinstaller利用が簡単

Pythonスクリプトをexe化する手段は「py2exe、Nuitka」などありますが、安定感とわかりやすさはPyinstallerが一番優れていると感じています。

exe化は公式Pythonの仮想環境で行うのがおすすめ

exe化はPython環境とスクリプトをパッケージ化し配布します。必用なもの全てを入れる必要があるのでファイル容量が重くなります。

そこで気を付けるべきことは、必要最低限のライブラリやPython環境でexe化する必要があります。例えば、多くのPythonパッケージが含まれるAnacondaでexe化すると、恐ろしいほどのファイル容量になります。この状態で配布や実行することは非効率です。

おすすめなのは公式Python環境の仮想環境で必要ライブラリをインストールしてexe化する方法です。少ないファイル容量で配布が可能となり、社内DX化の促進に貢献できます。

仮想環境でexeを作成する

多くの方にexeファイルを配布するなら、軽量で実行スピードが速いものを提供したいです。そうなると公式Pythonをインストールして、必用なライブラリとスクリプトのみを仮想環境で構築する手段になります。

公式Pythonのインストールと仮想環境の構築は別記事の公式Pythonインストールで時短!venv仮想環境構築も紹介でご紹介しております。

ここでは仮想環境を「pyexe」と名付け作成しました。下記のpyexe仮想環境からコマンドを実行して、exe化していきます。

(pyexe) C:\Users\abi00\pyexe>

Pyinstallerでスクリプトをexe化する手順

Pyinstallerをpipでインストール

下記からは全て仮想環境「pyexe」の状態で実行していきます。

pip install pyinstaller

Pyinstallerでexe化するコマンド

pyinstaller スクリプト名」でexe化することができます。今回は下記のtest1.pyでデスクトップ上にメッセージボックスを表示させるスクリプトをexe化する手順を解説します。

import tkinter as tk
from tkinter import messagebox

# メインウィンドウを作成(非表示)
root = tk.Tk()
root.withdraw()

# メッセージボックスを表示
messagebox.showinfo("Python exe実行", "exe実行が正常に表示されました")

上記スクリプトをexe化するコマンドは下記です。

pyinstaller test1.py

拡張子がipynbの場合はjupyter nbconvert –to python スクリプト名で変換

スクリプトの拡張子がipynbの場合はipynbファイルではうまく動作しませんので.pyに変更しましょう。

jupyter nbconvert --to python test1.ipynb

Pyinstallerのオプション

–onefile :関連ファイルを1つにまとめexe化(非常にわかりやすくなるので、おすすめです)

pyinstaller test.py --onefile

–noconsole :コマンドプロンプト非表示

pyinstaller test.py --noconsole

生成exeファイルの確認手順

上記を実行した結果、exe化できているかを確認します。イメージが伝わりやすい写真形式で下記に表示しました。

Pyinstallerのdistフォルダ

exe化すると仮想環境内のフォルダ(C:\Users\abi00\pyexe)にdistが作成されています。

この中に「test1.exe」が入っています。

例:”C:\Users\abi00\pyexe\dist\test1\test1.exe”

Pyinstallerで作成されexeのデフォルトアイコン

このtest1.exeをダブルクリックすると処理が実行されます。どのパソコンからでも基本同じ結果が得られるはずです。上記で作成した結果がデスクトップ上に表示されました。(下記)

exe実行してPCに結果が表示された様子

Pythonのexeファイル配布と利用時の注意

Pythonのexeファイルを他のPCで利用する際に警告が出るケースがある

exeファイルは悪意があるものも含まれている可能性があります。exeファイル実行時やPCに保管する時にPCによっては警告が出るケースがあります。exeファイルを利用する場合は作成者の信頼性が重要になります。

exe化後はバイナリデータなのでスクリプトの中身はわからない

どのようなスクリプトなのか知ることができません。exeすることで作成者のノウハウが盗まれるリスクは減少しますが、利用者にとっては中身が全くわからないので、悪意のあるものがあった場合の不安は残ると思います。

ご質問やご依頼について

記事やDX化のご質問や依頼はServiceをご覧くださいませ。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

著者:ブロガー2つ(につ)

■サイト設立目的
人海戦術の時代からテクノロジー活用による自動化促進の時代に変化。テクノロジー活用を促進するための情報共有やテクノロジー支援を行います。

目次