金. 4月 19th, 2024

スキルシェアリング.info

さまざまな問題にITスキルで立ち向かうITソリューションブログ

【Python】作成したスクリプトをexe化する方法

はじめに

どうもMizokeiです。
pythonでスクリプトを書いている際に、他の人に作ったスクリプトを渡したい場合があるかと思います。

でも、相手のPCや環境に

  • pythonがインストールされていなかったら?
  • 適切なバージョンやライブラリが院sつオールされていなかったら?

たった一つのスクリプトを渡すのに、環境を構築するのは面倒ですよね。そんな時、作ったpythonスクリプトをexeファイルに変換し、他の環境でも実行しやすい形式に変換できると便利です。

今回の記事の実行環境は以下です。

実行環境

  • Windows10 64bit
  • Python 3.7

今回使用するライブラリ

pythonスクリプトを実行可能ファイルexeに変換するにあたり、使用するライブラリは、以下です。

  • pyinstaller

pyinstallerをインストールする

pyinstallerのインストールコマンドは、以下です。

私Mizokeiの環境では、以下のような記載となりました。みなさまの環境では、少し異なるかもしれませんが、末尾が「Successfully」と表示されれば、特に問題はないでしょう。

pyinstallerをインストールしている様子

pipは、インストールしようとしているpyinstallerライブラリに必要な依存ライブラリも、一緒にインストールしてくれるため、その他のライブラリも同時に取得する場合があります。

pythonライブラリのインストール方法は、以下の記事で簡単に紹介しています。社内で利用する場合の、proxy使用時のコマンドなども記載してありますので、参考にご覧ください。

とりあえずプログラムを書く

今回は、pythonスクリプトをexe化するのが目的のため、pythonスクリプトのプログラム自体は、簡単に書きます。

不要かと思いますが、一応説明しておきますね。

起動時の出力として、「Hello Python World!!」を表示させています。

このままだと、実行してすぐにプログラムが終了し、ウィンドウも閉じてしまうため、以下のinput()メソッドで、入力処理を行い、待機させています。

さっそくexe化してみる

それでは、さっそくexe化してみましょう。以下のコマンドを実行するだけで、作ったpythonスクリプトをexe形式に変換することができます。

私の環境の場合ですと、以下のコマンドとなりました。サンプルプログラムは、helloworld.pyで作成しています。

以下のコマンドでも、実行可能なのですが、「–onefile」オプションを付けることで、exeファイル1つにまとめてくれます。使用しない場合は、複数のファイルが出力される場合があり面倒なので今回は考えていません。

exe化した様子

pyinstallerコマンドを実行すると、なにやらたくさんの画面出力が行われます。pythonスクリプトの長さによっては、数分かかる場合もあります。

最後に以下のような表示が出れば、exe化完了です。

exe完了時の出力

実行した階層を確認すると「dist」フォルダが作成されているかと思います。中を開くと、「helloworld.exe」が作成されていますね。

「dist」フォルダ内に作成されたexeファイル

確認のためにexeを実行してみる

ちゃんとexeに変換できているか、exeファイルを実行してみます。ダブルクリックでも実行できるかと思います。

以下のように、想定したpythonスクリプトの動作が確認できました。

exeファイルを実行した様子

今回は、input()メソッドを使用して、入力待ちにしていますが、入力待機させない場合は、プログラムの終了とともにウィンドウは閉じてしまうので注意が必要です。

今回作成したスクリプトの全文

さて、今回作成したスクリプトの全文です。pyinstallerを使用することが目的でしたので、簡単なコードですが、参考までにご利用ください。

この記事が誰かのお役に立てれば幸いです。それでは。