Fletで作ったアプリを実行可能ファイルにパッケージ化したい (Windows)
今回はこのカウンターアプリをWindowsの実行可能ファイル(*.exe)にパッケージ化したい。
デスクトップアプリをパッケージ化するドキュメントはこのページ
しかし、 flet build
が推奨されている (PyInstallerに依存しなくなった) ようなので、以下のページを参考にしながらパッケージ化してみる。
Flutter SDKというものをインストールする必要がある。
インストールしないまま flet build
を実行するとエラーになる。
$ flet build windows
`flutter` command is not available in PATH. Install Flutter SDK.
以下のページから flutter_windows_3.19.3-stable.zip
をダウンロードした。
zipファイルを解凍したものを C:\Users\<UserName>\AppData\Local
に配置し、以下を環境変数PATHに追加した。
C:\Users\<UserName>\AppData\Local\flutter\bin
PATHが通っていることも確認した。
$ which flutter
/c/Users/<UserName>/AppData/Local/flutter/bin/flutter
flet build
で実行可能ファイルを作成する場合、ディレクトリ構成が決められている。
flet create
コマンドを使うことで、そのようなディレクトリ構成のディレクトリが作成される。
$ flet create counter
Done!
Run the app:
flet run counter
$ tree
.
`-- counter
|-- README.md
|-- assets
| `-- icon.png
|-- main.py
`-- requirements.txt
2 directories, 4 files
$
作成された main.py
を以下のページのソースに書き換える。
flet build windows
を実行するとエラーになった。
$ flet build windows
Creating Flutter bootstrap project...OK
Customizing app icons and splash images...OK
Generating app icons...OK
Packaging Python app...OK
Building Windows app...
[中略]
Building with plugins requires symlink support.
Please enable Developer Mode in your system settings. Run
start ms-settings:developers
to open settings.
Error building Flet app - see the log of failed command above.
$
Windowsで flet build
を実行する場合、開発者モードを有効化しておく必要があるらしい。
以下のページを参考に開発者モードを有効化にした。
無事にビルドできた。
$ flet build windows
Creating Flutter bootstrap project...OK
Customizing app icons and splash images...OK
Generating app icons...OK
Packaging Python app...OK
Building Windows app...OK
Copying build to build\windows directory...OK
Success!
$ ls build/windows/
counter.exe* DLLs/ Lib/ python3.dll* screen_retriever_plugin.dll* url_launcher_windows_plugin.dll* vcruntime140_1.dll* window_to_front_plugin.dll*
data/ flutter_windows.dll* msvcp140.dll* python311.dll* serious_python_windows_plugin.dll* vcruntime140.dll* window_manager_plugin.dll*
ディレクトリ全体のサイズは189MBだった。
$ du -sh build/windows/
189M build/windows/
今回の環境
$ python --version
Python 3.10.11
$ pip show flet | grep Version
Version: 0.21.1
$ flutter --version
Flutter 3.19.3 • channel stable • https://github.com/flutter/flutter.git
Framework • revision ba39319843 (8 days ago) • 2024-03-07 15:22:21 -0600
Engine • revision 2e4ba9c6fb
Tools • Dart 3.3.1 • DevTools 2.31.1
build/windows/
配下に生成された counter.exe
を実行すると、カウンターアプリが表示される。
counter.exe
のみを適当な場所にコピーし、それを実行しようとするとエラーになる。
一緒に出力された *.dll
などのファイルも実行には必要であることが確認できた。
今回作ったプロジェクトのリポジトリ
GitHub Actionsでtagがpushされたら、ビルドしてReleaseにアップロードすることもできるらしいので、余裕があれば試してみたい。
料金は以下のページの通りで、パブリックリポジトリの場合は無料となっているらしい。
続き