こんにちは、じあです。
今回はPythonで作成したプログラムをexe化して、python環境のない方へ配布する方法をご紹介します。
様々な方法がありますが、今回は1ファイルにしても比較的軽くなるnuitkaをご紹介します。
Pyinstallerとさほど労力は変わらないのでPyinstallerよりはnuitkaをおすすめします。
基本事項
前提として、venvやcondaなどで仮想環境を作成しておくことをおすすめします。
condaの場合はcondaプロンプトで
conda create -n [env_name] python=[ver]
にて仮想環境を作成できます。VSCodeなどでこの環境を指定しましょう。
まずはnuitkaをインストールします。
pip install nuitka
基本的には
nuitka test.py
で作成できます。が、これでは目的を達成できないのでオプションを付けましょう。
nuitka --standalone --onefile --windows-disable-console --follow-imports --plugin-enable=tk-inter test.py
–standalone:python環境なしで動くように
–onefile:exe単体で動くように
–windows-disable-console:コンソール画面を出さないように
–plugin-enable=tk-inter:tkinterを内包する
–follow-imports:(使用している場合)numpyなどを勝手に内包してもらうように
といった感じです。
注意事項
ひと昔前はnuitkaはpyinstallerのウイルス誤検出の回避のために使われていたようですが、今はどちらもよく誤検出されます。
配布先に対して検出除外を設定していただかないといけません。
それだけpythonを使ってウイルスを作成するひとが多いということなのでしょう。
これについては解決法を模索中です。
最も簡単で無料でできるのはマイクロソフトストアに公開してデジタル署名をもらうことでしょうか。
いずれにせよ一筋縄ではいかないですね…
おわりに
今回はnuitkaでexe化する方法をご紹介しました。
もっと手軽に誤検出なくexe化できればいいのですが…
そもそもpythonでexe化するのが間違っているという話かもしれませんが、せっかくpythonが広がっているのにつまづいてしまうというのはなんとも。
それでは、また次の記事でお会いしましょう。