どうも!リョクちゃです。
今回はpyファイルをアプリケーション化、いわゆる.exe化する方法を
簡単に紹介していきます。
ふとコードを書いていると、Pythonってどうやってアプリケーション化するんだろう?
と感じたことはありませんか?
調べると色々な方法があるのですが、
色々調べた結果個人的にわかりやすかった、使いやすかった方法を発信していきます。
※アプリケーション化することで誰かに配布することもできるのでおススメです。
一方でファイルサイズが大きくなってしまうので注意も必要です。
→ 使わないパッケージなどはコードに含まないことです。
ちなみに前回のPython勉強会はこちらになります。
目次
アプリケーション化するための準備
動作の確認は特に今回はしないので、以下のpyファイルを.exe化していきたいと思います。
1 |
print("Hello World!") |
作成した.pyファイルを任意のディレクトリに保存しておいてください。
筆者は、デスクトップ上にTestフォルダを作成し、その中にtestフォルダを作成しました。
ややこしい作り方になってしまいました。
アプリケーションファイルを作成
コマンドラインを起動
それではWindowsメニューの検索バー(Windows10の場合、虫眼鏡アイコンのある欄)に
“cmd”と打つとコマンドプロンプトが表示されるかと思います。
これを立ち上げます。
作業ディレクトリの移動
立ち上げたコマンドプロンプト上で、先ほどHelloWorldのpyファイルを保存した
ディレクトリへ移動します。
移動するには、cdコマンドを使います。
.exe化の実行
.exe化をするにあたって、今回は”pyinstaller“といわれるツールを使います。
インストールがまだの方は、pipでインストールをしておきましょう。
これのまえに
を実行しておきましょう。
インストールができたら、使っていきます。
でpyファイルをexe化することができます。
オプションには、主に
- –onedir
1つのフォルダに出力結果をまとめます。 - –onefile
1つのファイルに出力結果をまとめます→.exeファイルのみが生成されます。 - –noconsole
コンソール画面の表示がされなくなります。 - –clean
前回のキャッシュと出力フォルダを削除しビルドを行います。
があります。
よく使うオプションになるので覚えておきましょう。
オプション無しでpyinstallerを実行すると、
作業ディレクトリ内にアプリケーションファイル一式が作成されています。
(下図参照)
作業ディレクトリ内にいくつかのフォルダやファイルが作成されています。
distフォルダの中に.exeファイルが出力されています。
オプション指定がないので、.exeファイル以外にも
関連しているファイルが出力されています。
.exeファイルのみが欲しいのに……というかたは、オプションに
–onefileを付けて、pyinstallerを実行すると、.exeのみが出力されます。
出力されたフォルダの中を見てみると、
作業ディレクトリ上に出力されるフォルダやファイルはオプション無しと同じです。
distフォルダの中を見てみると、.exeファイルのみが出力されます。
オプション無しと比較してみると、
上がオプション無し、下が–onefileオプション適用になります。
サイズが違うのがわかります。
–onefileにすると、.exeファイルのみの出力になりますが、
オプション無しで出力された様々なファイルがexeにまとめられる形になるため、
サイズが大きくなります。
このサイズは、ライブラリをimportしている数によって比例します。
特にpandasを使用したアプリケーションの場合、サイズがかなり大きくなります。
例えば、クラウドワークスでアプリケーションを納品したい場合、上限が100MBなので
場合によって100MB以下に収まらない場合があります。
そのため注意が必要です。
※意識しないで作っていると、後で面食らうので気を付けましょう。
また、Seleniumを使ったアプリケーションを.exe化した場合、
オプションに–noconsoleを使用すると起動がしないという事もあるので
留意しておきましょう。
簡単に.exeファイルは作れますが、そこからエラーが起きたりと
悩まされることが多々出てくることもあるので身構えておきましょう。
まとめ
pyファイルを.exe化する方法について簡単にざっくりと紹介していきました。
.exe化することで誰かに配布できる形になりますが、ファイルサイズが大きくなってしまって
配布出来ないといったことも出てきます。
(特にクラウドワークスなどのファイルサイズに上限があるサイトでの配布)
→ 納品の際はサイズも意識して作成してみてください。
pandasライブラリをよく使われる方は、特にサイズが大きくなるので、
なるべくpandasを使わない方法もしくは今回紹介した方法とは別の方法で
.exe化することをおススメします。
最後までお読みいただき、ありがとうございます。
・こちらの書籍を参考にPythonの理解を深めました。