13
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

筑波NSミライラボAdvent Calendar 2023

Day 22

GitHub Actionsを使ってPythonのexe化を自動化しよう!(Nuitka使用)

Last updated at Posted at 2023-12-21

はじめに

こんにちは!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とコメントだけ足したコードですが、こんな感じでできると思います。

.github/workflows/main.yml
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で翻訳しました。あまり気にしないでください。

参考文献

13
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?