はじめに
Pythonのexe化はなかなか悩ましい。
Nuitkaを使用することでそこそこ使えそうなexeファイルをゲットできました。
他にも有名所でPyInstaller, cx_Freezeとかがある。らしい。
完成イメージ
今回作成したアプリケーションは下記のようなもので、
画像ファイルを入力すると.icoファイルを作成してくれるものになっています。
容量は26,000kBくらい。このexeのみをコピペすればスタンドアロン使用できる。
仮想環境を使用したら9,700kBくらいまで小さくなりました。仮想環境は正義。
コード内で呼び出しているライブラリは次のとおり
import tkinter as tk
from tkinter import filedialog
from PIL import Image
from os.path import splitext
インストール
とりあえずnuitkaをインストール。
pip install nuitka
使い方
カレントディレクトリをPythonファイルのある場所にする。
cd フルパス
基本これを打てばexe化ができる。
nuitka ファイル名.py
が、これだけでは結局Python環境がないと動かないらしい。それを回避するために色々なオプションがある。
オプション
基本は上の通りで使用できますが、個人的な好みで以下のオプションを使用しました。
オプション | 意味 |
---|---|
--windows-disable-console |
黒い画面を出さない |
--standalone |
Python環境がないところでも動くようにする |
--onefile |
ひとつのexeファイルにまとめる |
--enable-plugin=tk-inter |
Tkinterをつかうおまじない |
--windows-icon-from-ico="*.ico” |
*.icoファイルをアイコンとして使用 |
nuitka --windows-disable-console --standalone --onefile --enable-plugin=tk-inter --windows-icon-from-ico=“アイコンファイル.ico” ファイル名.py
その他
初回実行時(?)は色々とNuitkaから聞かれることがあるので、Yesと回答しておきましょう。