Pythonで作ったプログラム(スクリプト)からexeファイルを作る方法

公開日時:  
Pythonで作ったプログラム(スクリプト)からexeファイルを作る方法
基本情報技術者試験の試験対策はこちら>>
SE
Pythonをインストールしていない環境でもPythonのプログラムを動かす方法はありますか。
PM
ありますよ。exeファイルを作るとPythonのプログラムを動かすことができます。

Pythonコードのexeファイルを作る


Pythonで作ったプログラムをPythonがインストールされていない環境で動かしたい場合はどうしたらよいでしょうか。答えのひとつに「exeファイルを作る」という方法があります。exeファイルを作れれば、わざわざPythonをインストールする必要がなくなります。

ここではPythonで作ったプログラム(スクリプト)からexeファイルを作る方法を紹介します。

exeファイルを作る方法として紹介するexeファイル変換プログラムは2種類あり、ひとつはPyInstaller、もうひとつはcx_Freezeです。

PyInstallerはひとつのexeファイルを作成できるのでおすすめですが、欠点はファイルサイズが比較的大きくなってしまうのと実行時間が比較的長くなってしまいます。その点cx_Freeseは比較的悪くないようですが、実行時に必要なファイルが沢山できてしまいます。

どちらも長所・短所がありますし、環境によっては不具合が出る可能性もありますので上手に使い分けた方が良いでしょう。

ここで使用するOSはWindows10およびLinux(Ubuntu20.10)でPythonのバージョンはどちらも3.9.1です。

PyInstallerを使ってexeファイルを作る

まずはPyInstallerという変換プログラムを使ってexeファイルを作ってみることにします。

PyInstallerのインストールは下記のコマンドを実行してインストールします。なお、下記のコマンドを実行してインストールされたPyInstallerのバージョンはWindows、Ubuntu共に4.2でした。

Ubuntuの場合、インストール後にpyinstallerを実行しても起動しない場合にはコンピュータを再起動する必要があります。

下記コマンドはWindowsおよびUbuntu共通です。

変換に使用するPythonのサンプルプログラム

とりあえず下記のような簡単なプログラムを用意します。ファイル名はsample1.pyとします。

exeファイルを作ってみる

PyInstallerをインストールして、sample1.pyを用意できたら実際にexeファイルを作ってみます。下記のコマンドを実行してみてください。

オプションに指定している「–onefile」はひとつのexeファイルを作るという意味のオプションスイッチです。試しにこれを外してexeファイルを作成すると、exeファイル以外にも沢山のファイルが作成されてしまいます。

コマンドを実行するとdistフォルダが作成されて、その中にWindowsの場合sample1.exeが、Ubuntuの場合sample1が作成されます。

下記コマンドはWindowsおよびUbuntuで共通です。

exeファイルが大きくなってしまったときは

PyInstallerはインストールされているモジュールをすべて含んだファイルを作成するため、沢山のモジュールをインストールした環境(Anaconda等)では巨大ファイルになりがちです。

対策としては仮想環境を作って「必要最低限のモジュールのみをインストールする」方法があります。仮想環境を作るひとつの方法としてpipenvコマンドを利用できます。pipenvコマンドは下記のコマンドでインストールできます。

下記コマンドの①はWindows、②はUbuntuのコマンドです。

pipenvコマンドの使い方

pipenvコマンドは実行するフォルダ毎に管理されます。

そのため、まずは作業用フォルダを作成してそのフォルダにカレントフォルダを移動します。その後、pipenvに使用するPythonのバージョンを設定(環境ファイル&フォルダが作成されます)し、pipenvで作成される仮想環境(shell)を起動します。

ここまで①~④のコマンドを実行してください。フォルダ名とPythonのバージョンは使用環境に合わせて適切に指定してください。

仮想環境のシェルを起動したら、必要なモジュール(ライブラリ)をインストールしましょう(⑤を必要なだけ繰り返してください)。

①~⑤で環境が整ったら⑥でexeファイルを作成しましょう。

なお、Ubuntuで⑤のパッケージがインストールできないときは、その対策として⑦~⑨のコマンドを実行後に⑤を実行してみてください。

cx_Freezeを使ってexeファイルを作成する

インストールは下記のコマンドを実行してください(①はWindows、②はUbuntuのコマンドです)。なお、cx_Freezeはバージョンにより対応するPythonのバージョンが異なりますのでご注意ください。

変換に使用するPythonのサンプルプログラム

とりあえず下記のような簡単なプログラムを用意します。ファイル名はsample2.pyとします。

「setup.py」を作る

下記のファイルはWindows、Ubuntu共に共通で使用できるスクリプトファイルです。ファイル名(sample2)の文字列(2カ所)を適宜変更してご使用ください。

cx_Freezeでexeファイルを作る

下記コマンドを実行してexeファイルを作成してください(①はWindows、②はUbuntuのコマンドです)。

上手く作成されれば、build以下のフォルダにexeファイル(実行可能ファイル)一式が格納されています。

Pythonでのexeファイルの作り方


以上、PyInstallerとcx_Freezeを用いたexeファイルに変換する例を紹介しましたが、他にもexeファイルに変換できるプログラムはいくつかあります。

もし速度的に不満があるようでしたら、ここでは紹介しませんでしたがpy2exeというプログラムがあります。py2exeは利用しているPythonのバージョンによって、使用できるバージョンが異なることがありますのでご注意ください。

SE
Pythonをインストールしていない環境でもPythonのプログラムを動かすことができるのですね。
PM
PyInstallerやcx_Freezeを使ってexeファイルを作成することができますので、参考にしてください。

最後に

いずれの変換プログラムも長所・短所がありますし、不具合もあると考えた方が良いでしょう。しかしPythonをインストールしていなくても、よく使うPythonで作ったプログラムが動くというのは魅力的です。上手に使えるようになりましょう。


FEnetへの登録は左下のチャットが便利です 経験者優遇! 最短10秒!

.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags