はじめに
こんにちは!N中等部ネットコースに所属しているあかずです。
この記事では、タイトルにもある通り、GitHub ActionsでPythonのexe化を自動化する方法を書きます。
Nuitkaとは
Pythonをexe化するためのライブラリ(?)です。大体PyInstallerと同じですね。
有名なところだとVOICEVOXが利用しているみたいです。
Nuitkaのいいところは、実行速度が早い、起動が早い、ファイルサイズが小さいところです。
(ファイルサイズが小さいは諸説ありそうです)
調べてみるとPyInstallerと違ってウイルス誤判定されないと言われていましたが、自分はしっかりウイルス誤判定されました。
Actionsに入れてみよう!
Not all Nuitka options are currently exposed as input parameters to this action. We welcome PRs in case you find anything missing.
Nuitkaのすべてのオプションには対応していないようなので、そこだけ注意してください。
今回紹介するコードは、Windowsのexeでしか動作しませんが、Linuxや、MacOSの実行ファイルも同時に吐き出してくれるコードもあったので、必要な方は使ってみてもいいかもしれません!
公式のコードにnameとonとコメントだけ足したコードですが、こんな感じでできると思います。
name: Compile Python
on: [push]
jobs:
build:
# こちらはWindowsに対応しておりますわ。
runs-on: windows-latest
steps:
# リポジトリをチェックアウトするのです
- uses: actions/checkout@v3
# Pythonのセットアップを行いますわ
- uses: actions/setup-python@v4
with:
python-version: '3.x' # 使用するPythonのバージョンの範囲または正確なバージョンを、SemVerのバージョン範囲の構文を使用して指定しますわ
architecture: 'x64' # オプションでx64またはx86を指定しますわ。指定がない場合はデフォルトでx64になりますわ
# Pythonスクリプトをスタンドアロンのexeにビルドしますわ
- uses: Nuitka/Nuitka-Action@main
with:
nuitka-version: main
script-name: hello_world.py
onefile: true
# アーティファクトをアップロードしますわ
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: exe
path: build/hello_world.exe
このコードだと、hello_world.pyがコンパイルされ、アーティファクトとしてhello_world.exeが保存されます。
適宜自分の環境に合わせて変更してみてください!
ちなみにコメントアウトはすべてAIで翻訳しました。あまり気にしないでください。
参考文献