.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. Python
  5. Pythonで作ったプログラム(スクリプト)からexeファイルを作る方法

Pythonで作ったプログラム(スクリプト)からexeファイルを作る方法

  • Python
  • プログラミング言語
公開日時:   更新日時:
Pythonで作ったプログラム(スクリプト)からexeファイルを作る方法
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>
    システム
    エンジニア
    Pythonをインストールしていない環境でもPythonのプログラムを動かす方法はありますか。
    プロジェクト
    マネージャー
    ありますよ。exeファイルを作るとPythonのプログラムを動かすことができます。

    Pythonコードのexeファイルを作る


    Pythonで作ったプログラムをPythonがインストールされていない環境で動かしたい場合はどうしたらよいでしょうか。答えのひとつに「exeファイルを作る」という方法があります。exeファイルを作れれば、わざわざPythonをインストールする必要がなくなります。

    ここではPythonで作ったプログラム(スクリプト)からexeファイルを作る方法を紹介します。

    exeファイルを作る方法として紹介するexeファイル変換プログラムは2種類あり、ひとつはPyInstaller、もうひとつはcx_Freezeです。

    PyInstallerはひとつのexeファイルを作成できるのでおすすめですが、欠点はファイルサイズが比較的大きくなってしまうのと実行時間が比較的長くなってしまいます。その点cx_Freeseは比較的悪くないようですが、実行時に必要なファイルが沢山できてしまいます。

    どちらも長所・短所がありますし、環境によっては不具合が出る可能性もありますので上手に使い分けた方が良いでしょう。

    ここで使用するOSはWindows10およびLinux(Ubuntu20.10)でPythonのバージョンはどちらも3.9.1です。

    PyInstallerを使ってexeファイルを作る

    まずはPyInstallerという変換プログラムを使ってexeファイルを作ってみることにします。

    PyInstallerのインストールは下記のコマンドを実行してインストールします。なお、下記のコマンドを実行してインストールされたPyInstallerのバージョンはWindows、Ubuntu共に4.2でした。

    Ubuntuの場合、インストール後にpyinstallerを実行しても起動しない場合にはコンピュータを再起動する必要があります。

    下記コマンドはWindowsおよびUbuntu共通です。

    変換に使用するPythonのサンプルプログラム

    とりあえず下記のような簡単なプログラムを用意します。ファイル名はsample1.pyとします。

    exeファイルを作ってみる

    PyInstallerをインストールして、sample1.pyを用意できたら実際にexeファイルを作ってみます。下記のコマンドを実行してみてください。

    オプションに指定している「–onefile」はひとつのexeファイルを作るという意味のオプションスイッチです。試しにこれを外してexeファイルを作成すると、exeファイル以外にも沢山のファイルが作成されてしまいます。

    コマンドを実行するとdistフォルダが作成されて、その中にWindowsの場合sample1.exeが、Ubuntuの場合sample1が作成されます。

    下記コマンドはWindowsおよびUbuntuで共通です。

    exeファイルが大きくなってしまったときは

    PyInstallerはインストールされているモジュールをすべて含んだファイルを作成するため、沢山のモジュールをインストールした環境(Anaconda等)では巨大ファイルになりがちです。

    対策としては仮想環境を作って「必要最低限のモジュールのみをインストールする」方法があります。仮想環境を作るひとつの方法としてpipenvコマンドを利用できます。pipenvコマンドは下記のコマンドでインストールできます。

    下記コマンドの①はWindows、②はUbuntuのコマンドです。

    pipenvコマンドの使い方

    pipenvコマンドは実行するフォルダ毎に管理されます。

    そのため、まずは作業用フォルダを作成してそのフォルダにカレントフォルダを移動します。その後、pipenvに使用するPythonのバージョンを設定(環境ファイル&フォルダが作成されます)し、pipenvで作成される仮想環境(shell)を起動します。

    ここまで①~④のコマンドを実行してください。フォルダ名とPythonのバージョンは使用環境に合わせて適切に指定してください。

    仮想環境のシェルを起動したら、必要なモジュール(ライブラリ)をインストールしましょう(⑤を必要なだけ繰り返してください)。

    ①~⑤で環境が整ったら⑥でexeファイルを作成しましょう。

    なお、Ubuntuで⑤のパッケージがインストールできないときは、その対策として⑦~⑨のコマンドを実行後に⑤を実行してみてください。

    cx_Freezeを使ってexeファイルを作成する

    インストールは下記のコマンドを実行してください(①はWindows、②はUbuntuのコマンドです)。なお、cx_Freezeはバージョンにより対応するPythonのバージョンが異なりますのでご注意ください。

    変換に使用するPythonのサンプルプログラム

    とりあえず下記のような簡単なプログラムを用意します。ファイル名はsample2.pyとします。

    「setup.py」を作る

    下記のファイルはWindows、Ubuntu共に共通で使用できるスクリプトファイルです。ファイル名(sample2)の文字列(2カ所)を適宜変更してご使用ください。

    cx_Freezeでexeファイルを作る

    下記コマンドを実行してexeファイルを作成してください(①はWindows、②はUbuntuのコマンドです)。

    上手く作成されれば、build以下のフォルダにexeファイル(実行可能ファイル)一式が格納されています。

    Pythonでのexeファイルの作り方


    以上、PyInstallerとcx_Freezeを用いたexeファイルに変換する例を紹介しましたが、他にもexeファイルに変換できるプログラムはいくつかあります。

    もし速度的に不満があるようでしたら、ここでは紹介しませんでしたがpy2exeというプログラムがあります。py2exeは利用しているPythonのバージョンによって、使用できるバージョンが異なることがありますのでご注意ください。

    システム
    エンジニア
    Pythonをインストールしていない環境でもPythonのプログラムを動かすことができるのですね。
    プロジェクト
    マネージャー
    PyInstallerやcx_Freezeを使ってexeファイルを作成することができますので、参考にしてください。

    最後に

    いずれの変換プログラムも長所・短所がありますし、不具合もあると考えた方が良いでしょう。しかしPythonをインストールしていなくても、よく使うPythonで作ったプログラムが動くというのは魅力的です。上手に使えるようになりましょう。

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    Python新着案件New Job