NOTES

Pythonスクリプトを実行ファイル(.exe)に変換する方法 ― PyInstallerが見つからないときの対処法も解説

本記事では、Pythonスクリプトから実行体を作る方法をご紹介します。また、pyinstallerが見つからないというエラーが生じた場合の簡単な対策についても解説します。

目次

はじめに

Pythonのスクリプトを実行するには、Pythonをインストールした後に必要なライブラリをインストールして、環境を構築しなければなりません。

他の人にスクリプトを渡して使ってもらう場合、その人も同様の環境を構築することになります。その人がPythonユーザーであれば大した手間ではないですが、明るくない人であれば時間がそれなりにかかることになります。

スクリプトを実行体(.exe)にすると、環境構築を行う必要がないため、簡単に使ってもらえるようになります。すると、作業を効率的にするちょっとしたプログラムを共有して、全体の効率アップにつなげることもできます。

また、人にソースコードを見せたくない場合は、機械語に翻訳されるため、ソースコードを簡単にみることができなくすることができます(ただし、ソースコードを本当に隠蔽した場合には別途暗号化が必要になります)。

pyinstallerのインストール

pyinstallerを使用するために、pyinstallerパッケージをインストールします。pythonがインストールされた環境でpipコマンドを使用します。

pip install pyinstaller

準備はこれで完了です。

pyinstallerの使い方

pyinstallerにより実行体を作る場合には、次のようにします。

pyinstaller sample.py

sample.pyの部分は、実行体にしたいPythonのスクリプトの名前になります。複数のスクリプトから構成される場合は、メインとなるスクリプトの名前を指定します(つまり、スクリプトを実行するときにpython sample.pyとする場合と同じファイルを指定します)。

pyinstallerを使用すると、Python本体と作成したスクリプト、Pythonプログラムで使用したモジュールが実行体(.exe)に変換されます。この作成した実行体はOSに依存し、Windowsで作成したものはWindows上でのみ実行することができ、MacやLinuxでは使用できません。成功すると、次のようにうまくいったことを意味するメッセージが表示されます。

14455 INFO: Build complete! The results are available in: D:\User\Desktop\Python

コマンドを使用すると、2つのフォルダができます。

フォルダ名説明
build中間ファイルが保存される作業用ディレクトリです。通常は配布や実行には不要です。消しても再度コマンドを実行したときに再作成されます。
dist最終的な実行ファイル(.exeなど)が出力される場所です。ユーザーが配布するのはこの中のファイルになります。

pyinstallerには、いくつか便利なオプションがあります。よく使うのは、--onefile--noconsoleです。

オプション説明
--onefile通常、pyinstallerでビルドすると複数のファイルやフォルダ(依存関係)を含む多数のファイルが出力されます。--onefileを使用すると、必要なファイルをまとめて実行体(.exe)にしてくれます。これにより、.exeファイルのみを別の場所にコピーしても実行できるようになります。つまり、ユーザーは1つのファイルを配るだけでよくなります。
(ただし、ファイルを一つにするため、ファイルサイズは大きくなります)
--noconsole--noconsoleを使用すると、コンソールウィンドウを表示させないようにすることができます(GUIアプリ向け)。ログやエラー表示も見えなくなるため、デバッグ中は付けない方が便利です。
--name 名前実行ファイルの名前を指定できます(デフォルトはスクリプト名)
--cleanビルド前に一時ファイルを削除してクリーンにします。

例えば、次のように使います。

pyinstaller sample.py --noconsole --onefile --name test --clean

この場合、test.exedistフォルダに作成されます。

pyinstallerが見つからない場合(not found)の対処

pyinstallerpipでインストールした後に、pyinstallerコマンドを実行した場合に、pyinstallerコマンドが見つからないというエラーがでる場合があります。

例えば、pyinstaller.exeがあるフォルダにPATHが通ってない場合や仮想環境venv)でインストールした場合などです。

この場合には、-mオプションを使ってPyInstallerモジュールを使用すると、PATHが通っていなくても実行体を作成することができます。

python -m PyInstaller sample.py --noconsole --onefile

pipコマンドでpyinstallerをインストールしたけど、コマンドが実行できない場合にはこの方法で実行体を作成するのが簡単です。

まとめ

Pyinstallerのインストール方法と使用方法、Pyinstallerが見つからない場合の簡単な対処法をご紹介しました。

ご参考になりましたら幸いです。

-NOTES
-