はじめに
Python初学者のわたしが覚えるために、学んだことを整理し、理解を深めるために記事を書いています。
私が実際にやってみて、悩んだ部分や過程などを残していきます🐥
今回は、Pythonで作成したアプリを exe化し、
納品するときの注意点までになります😊
迷わないように、手順+注意点を整理していきます!
この記事でやること(本日のゴール⚽️)
- PyInstallerをインストールできるようになる
- exeファイル(--onefile)を作れるようになる
- exeファイル名を指定して作成できるようになる
- 実務で使える納品用zipの作り方が分かるようになる
① PyInstallerのインストール
ここで私の疑問です!💦
そもそもexeファイルとはなんぞや?
その答えが以下になります😊
pyinstallerとは?
自分で書いたコードを1つの実行ファイルにまとめることができます😊
なので、Pythonの環境がなくてもダブルクリックするだけで、
実行できるようになります!このファイルをexeファイルと呼びます🐥
Pythonやライブラリをまとめて1つのファイルにできるため、
Python環境がないPCでも実行できるようになります。
では、PyInstallerをインストールします!
インストールしなければexeファイルにすることはできないので、
ターミナル以下を入力してください🐥
pip install pyinstaller
これはインストールしてね〜!よろしくねー!とお願いしていると思ってください!
② exeファイルを作る方法
インストールが完了した後は、exeファイルにすることができます!
例:main.py をexe化する場合は以下になります😊
ターミナルに入力をします!
pyinstaller main.py --onefile
入力して実行すると、ビックリするくらいの長い英語がダーって出てきます😳
最後までいくとbuild complete!みたいな
buildが成功した感じのことがターミナルに出てきて、
buildとdistのファイルが作成されます🐥
そのdistの中に main.exeができます!
あっという間に完成です😊
単体のexeファイルになります。
生成結果は以下になります🐥
dist/
└ main.exe
③ exeファイル名を指定する方法
次はファイル名がmain.exeとなっていましたが、
せっかくなのでDonutsShopResearch.exeにしてみましょう〜!
pyinstaller --onefile --name DonutsShopResearch main.py
#または
pyinstaller --name DonutsShopResearch main.py --onefile
生成結果は以下になります🍩
dist/
└ DonutsShopResearch.exe
アプリ名を明確すると、これが何のファイルか分かりやすいです😊
④buildフォルダとdistフォルダの違い
exeファイルを作るとbuildとdistが生成されます!
これって何の違い?と思ったの調べてみました〜!
| フォルダ | 役割 |
|---|---|
| build | ビルド用一時ファイル(不要) |
| dist | 完成版exeが入る(納品用) |
納品を意識する場合は以下のことがPOINTになります!
🐞ここで大事な注意点🐞
- 納品する場合は、基本的に distフォルダの中身 + 必要な設定ファイル を
まとめてzipにすればOKです! -
.envや APIキーなどの 機密情報は含めない⚠️
<例>必要なファイルの例 - configファイル
- 設定JSON
- 必要なCSV
⑤私の失敗談〜😭
configファイルや.envをmain.pyで実行したら、動くのに
distのexeを実行するとディレクトリが変わってしまう〜!
せっかく出来たと思ったのに、ここでコードの修正をすることになりました😭
exeファイルを生成するときに、実際に参照しているディレクトリが変わってしまうので要注意〜!!!
⑥exeファイルを作り直したい場合は?
私は何回も作り直しました😂
せっかくexeファイルを生成したのに、エラーを何回も発見しました😱
削除して、作り直す方法を知っておくのは大事です😊
#削除
# Windows用
rmdir /s /q dist
rmdir /s /q build
# Mac / Linux用
rm -rf dist
rm -rf build
古いデータが残っていると不具合となる可能性があります⚠️
⑦ exeファイルはOSによって動かないので注意!
ここで注意点です⚠️
PyInstallerで作成した実行ファイルは、作成したOSでしか動きません!!
例えば以下のようになります!
| 作成したOS | 作成されるファイル | 動作するOS |
|---|---|---|
| Windows | .exe |
Windowsのみ |
| Mac | .app |
Macのみ |
| Linux | 実行ファイル | Linuxのみ |
まとめ
exeファイルを作成するということは、納品を意識する大事な部分になります!
大事な機密情報はここに入れないようにすることが非常に大事です!
実際に簡単なコードでいいので、実際にexeファイルにしてみてください😊
最後までありがとうございました🙇