【Django】Pythonアプリをexe化・第三者に配布する方法|Pyinstallerによる実行ファイル作成

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

こんな方におすすめ!
  • Djangoプロジェクトを実行ファイルに変換(Exe化)して、第三者に配布したい
  • Pyinstallerを活用してPythonファイルをexeファイル変換する方法が知りたい
目次

実行ファイル(.exe)とは?

実行ファイルとは、コンピュータでそのまま実行できるバイナリ形式のプログラムを指します。Windowsで主に使用され、拡張子は.exeとして取り扱わます。

EXE化したファイルを実行する場合、そのEXEファイルの動作由来となるプログラム言語環境に依存することなく、コンピュータ上で直接実行できるようになるのが特徴です。例えば、Pythonプログラムを由来とするEXEファイルも、Pythonの環境が無いPCに移行して実行できるようになります。

Pyinstallerとは?|Python.pyを実行ファイルに変換する準備

Pyinstallerとは、Pythonプログラムを実行ファイルに変換するためのライブラリです。

Pyinstallerの具体的な使い方についてはこちらの記事で解説していますため併せてご覧ください。

【Pyinstaller】Django作成プロジェクト・アプリをexe化する方法

それでは実際にDjangoで作成したアプリをexe化する方法について解説します。

次のような手順に沿って1つずつ内容を確認していきましょう。

  1. 【事前準備】Pyinstallerのインストール
  2. 【事前準備】Djangoプロジェクト・アプリの作成
  3. 【実践】Djangoプロジェクトを実行ファイルに変換
  4. 【実践】実行ファイルを起動

【事前準備】Pyinstallerのインストール

Pyinstallerを利用する場合、事前に以下のコマンドを入力してインストールしておく必要があります。

pip install pyinstaller

【事前準備】Djangoプロジェクト・アプリの作成

実行ファイル変換元のDjangoプロジェクトおよびアプリを作成します。Djangoプロジェクト・アプリの作成方法については本記事で割愛していますが、以下の記事にて詳しく解説しています。適時参照下さい。

【実践】Djangoアプリを実行ファイルに変換

前述で用意したDjangoプロジェクト・アプリをexeファイルに変換していきます。インタラクティブシェルのコマンド入力を通じて実現する方法について以下詳しく見ていきましょう。

【手順1】Djangoプロジェクトフォルダのディレクトリ確認

Djangoプロジェクトフォルダがあるディレクトリを確認します。

今回の例ではmyprojectmyappで構成されるDjangoプロジェクトフォルダを実行ファイルに変換する方法について言及することとします。

【手順2】インタラクティブシェルを開き、Djangoプロジェクトフォルダを指定

インタラクティブシェル(Windowsの場合はコマンドプロンプト、Macの場合はターミナル)を開き、manage.py直上のプロジェクトフォルダmyprojectがあるディレクトリに移動しましょう。

例えば、Desktop/django/myprojectにプロジェクトフォルダがある場合、シェルには以下を入力します。

cd Desktop/django

【手順3】Pyinstallerを起動しEXEファイル作成

前述のインタラクティブシェルの操作にてDjangoプロジェクトフォルダがあるディレクトリに移動後、次のコマンドを実行します。

pyinstaller --name=django_exe_file myproject/manage.py --onefile

インタラクティブシェルには、pyinstallerと記述後、オプションコマンド--nameに作成する実行ファイル名を指定します。また、manage.pyがある相対パスmyproject/manage.pyを指定します。最後に、--onefileというオプションコマンドを指定し、コマンドを実行しましょう。

【実践】実行ファイルを起動

実行ファイルを起動し、Djangoアプリが正しく動作するか確認してみましょう。

作成した実行ファイル確認

前述の実行ファイル作成コマンドを実行すると、myprojectと同じディレクトリにbuilddistフォルダがそれぞれ作成されます。実行ファイルは、dist直下に作成されますので確認してみましょう。

実行ファイルを起動

実行ファイルを起動する際は、インタラクティブシェルを再び用います。次のコマンドを実行しましょう。

dist/django_exe_file runserver localhost:8000  --noreload

dist/django_exe_fileでは実行ファイルのあるディレクトリを指定しています。ここで、ディレクトリ指定の際は、必ず実行ファイルより上位の階層にあるディレクトリから相対パスを指定するようにしましょう。

インタラクティブシェルでdjango_exe_fileと同じディレクトリに移動し、django_exe_fileを直接指定してコマンドを実行すると、command not found: django_exe_fileというエラーに遭遇します。

runserver localhost:xxxでは起動するローカルサーバーを指定しています。

上記コマンドを入力後、ローカルサーバーhttp://localhost:xxx/を開き、Djangoアプリが起動するか確認してみましょう。

【参考】Djangoの解説記事一覧

最後までご覧いただきありがとうございました。当サイトではDjangoフレームワークを用いた解説記事を多数取り扱っております。次のように体系的に整理しておりますため学習にお役立て下さい。

Django学習に最適!

当サイトが運営するDjango記事一覧

【参考】Pythonでできること・お仕事探し

最後に

この記事が気に入ったら
フォローしてね!

本記事をシェア!
目次