NiceGUIのネイティブモード実行をNuitkaでExe化する
pyinstallerを使っていましたが、起動に時間がかかったりバイナリがやたら大きくなるなどの課題があるため、Nuitkaを使ってみることにしました。
NiceGUI用のNuitkaの設定
Nuitkaの使い方とか設定の詳細は他にも詳しい記事があるので、ここではNiceGUI用の設定を挙げるのみにします。
ちなみに、公式ドキュメントの以下にあるように
各設定は実行するPythonコードの先頭にコメントを使用して記載してくと自動で読み取ってくれます。以下に例を挙げます。
app.py
# Windows向けのオプションはif文で書き分けます
# nuitka-project-if: {OS} in ("Windows"):
# nuitka-project: --windows-console-mode=disable
# nuitka-project: --mingw64
# NiceGUIアプリ向けに必要な設定
# nuitka-project: --noinclude-default-mode=error
# nuitka-project: --include-package-data=nicegui
# nuitka-project: --nofollow-import-to=doctest
# nuitka-project: --include-module=pygments.formatters.html
# 単体で実行可能なEXEファイルを作成する
# nuitka-project: --standalone
# nuitka-project: --onefile
from nicegui import ui
ui.label("Hello, world!")
ui.run(
native=True,
reload=False,
)
Nuitkaの実行は以下でOK
$ nuitka app.py
注意点
2024.11.24時点ではNuitkaの最新Verは2.5.1ですが、2.5から不具合があるようでNiceGUIアプリは起動に失敗します。まもなく修正される見込みのようですが、それまでは2.4.11を使用しましょう。