Pythonのexe化にはこれ!Nuitkaの使い方完全解説

PRについて
※このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
スポンサーリンク
※このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
Pythonのexe化にはこれ!Nuitkaの使い方完全解説 Tips集
Pythonのexe化にはこれ!Nuitkaの使い方完全解説
Pythonプログラミング逆引き大全

Pythonで作成したスクリプトをWindows上で直接実行可能な形式(.exeファイル)に変換することは、多くの場面で便利です。

この記事では、「Nuitka」を使用してPythonスクリプトをEXE化する方法を詳しく解説します。

PyInstallerとの比較や、Nuitkaを使用する際のメリット・注意点も併せてご紹介します。

ごまこ
ごまこ

Pythonで作ったプログラムを周りの方にも配って作業を効率化したいんです。
でもPython環境がないPCを使っている人に.pyのプログラムを実行してもらうにはPythonをインストールしてもらわないといけないんでしょうか..

ごまお
ごまお

.pyファイルを.exeファイルに変換すればPythonの実行環境がないWindows端末でもプログラムを実行できますよ!
作ったexeファイルをダブルクリックするだけで実行できます。
簡単に実行したい場合は以下のリンクのPyInstallerも利用してみてください!

1. EXE化とは?

EXE化の目的

Python環境がないPCでも動かせる

EXE化することで、Pythonがインストールされていない環境でもプログラムを実行できます。

コードの保護

EXE化によってソースコードが直接見られにくくなり、セキュリティが向上します(完全ではありません)。

配布の簡便化

Pythonスクリプトや依存関係を一つのファイルにまとめられるため、配布やインストールが容易になります。

2. Nuitkaの使い方

Nuitkaとは?

Nuitkaは、Pythonスクリプトを「C言語コード」に変換し、コンパイルすることでEXEファイルを生成するツールです。

一般的なEXE化ツールである「PyInstaller」と比較して以下の利点があります:

実行速度の向上

PythonコードをCコードに変換してネイティブ実行速度に近づけます。

生成されるファイルサイズが小さい

不要な依存関係を含まないため、軽量なEXEファイルを生成します。

Nuitkaの基本的な使い方

Nuitkaはpipを使って簡単にインストールできます。以下のコマンドを実行してください。

python -m pip install nuitka

PythonスクリプトをEXE化する際には、以下のコマンドを実行します。

nuitka --onefile ファイル名.py

--onefileオプション: このオプションを指定することで、すべての依存関係を含んだ単一のEXEファイルが生成されます。

プラグインの有効化

特定のライブラリ(例:NumpyやPandas)を使用している場合、プラグインを有効にする必要があります。

以下はNumpyを使用する場合の例です。

nuitka --onefile ファイル名.py --enable-plugin=numpy

Nuitka公式ドキュメントには、利用可能なプラグインの一覧が記載されているので、必要に応じて設定を追加してください。

3. PyInstallerとの比較

検証内容

同じPythonスクリプトをNuitkaとPyInstallerでEXE化し、ファイルサイズを比較しました。

使用したスクリプトは以下のようなプログラムです。

  • テキストデータを音声データに変換するプログラム。
  • 使用ライブラリ:PySimpleGUI(GUI構築用)とgTTS(Google Text-to-Speech)。

結果

ツール生成されたファイルサイズ
PyInstaller97.0MB
Nuitka9.9MB

差が生じる理由

PyInstaller

必要なライブラリやPythonインタープリタ全体を同梱するため、ファイルサイズが大きくなります。

Nuitka

PythonコードをCコードに変換し、必要最小限の依存関係だけを含む形式でコンパイルします。

そのため、軽量なEXEファイルが生成されます。

4. Nuitkaを使うべきケース

Nuitkaのメリット

軽量なファイルサイズ

配布時に便利で、ダウンロードやメール添付にも適しています。

実行速度の向上

特に計算量が多いプログラムの場合、ネイティブ実行速度に近づきます。

コード保護

Cコードに変換するため、Pythonのソースコードを直接読み取ることが困難になります。

適したケース

  • ファイルサイズを重視する場合。
  • 実行速度の最適化が求められる場合。
  • Pythonがインストールされていない環境での実行が必要な場合。

5. 注意点

Nuitkaの制約

  • 一部のライブラリに対応していない場合があります(公式プラグインで解決できるケースもあります)。
  • コンパイル時間が長くなることがあります。

PyInstallerのメリット

  • サポートされているライブラリが多い。
  • ドキュメントが充実しており、トラブルシューティングが容易。
  • 初心者でも比較的扱いやすい。

6. まとめ

NuitkaとPyInstallerにはそれぞれメリットがあります。

用途や要件に応じて使い分けるのがポイントです。

  • Nuitkaは、軽量化や実行速度の向上を重視する場合に最適。
  • PyInstallerは、広範なライブラリの対応や手軽な操作性が必要な場合に向いています。

Nuitkaを使用することで、Pythonスクリプトを効率よくEXE化し、配布の手間を大幅に軽減できます。ぜひ活用してみてください!

関連リンク

本ブログ「ゴマフリーダムのPython教室」のトップページへは以下へアクセス!

Python自動処理の教科書
Tips集
ゴマフリーダムをフォローする

コメント

達人に学ぶDB設計 徹底指南書

最短コースでわかる ディープラーニングの数学

あたらしい機械学習の教科書 第3版

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

タイトルとURLをコピーしました