超初心者向けPython入門講座

仕事の効率化などにpythonを使いたい!けど何から始めらばよいか分からない、といった初心者の方向けに、pythonの導入から実用的な使い方まで、極力分かりやすくまとめたサイトです。

pyinstaller python

pyinstallerを使ったPythonのexe化(重くならない方法)

投稿日:

今回は、「pyinstaller」を使ってPythonをexe化して配布できるようにする方法について解説したいと思います。

Pythonをexe化することで、Pythonの環境を構築していない人でも使用できるようになるため、作成したプログラムを配布する際に役に立いちます。

解説内容

 

 

1. 必要なライブラリのインストール

まずはPythonをexe化するために必要な「pyinstaller」というライブラリをインストールしていきましょう。anacondaプロンプト上で下記のコマンドを実行してインストールしましょう!

conda install pyinstaller

※ただし、ここではcondaでインストールしていますが、この方法だとexeが重くなるため、最終的には「exeを重くしない方法」で解説する方法でインストールすることをお勧めします。

exe化する準備はこれだけでOKです!

では次の章で簡単なプログラムをexe化してみましょう!

 

Pyinstallerでは、exe化の際にPyqt5を使用している場合があるため、もしエラーが出る場合は Pyqt5というライブラリもインストールしてください。

  

2. Pythonのexe化

2.2. exe化の基本について

まず、Pyinstallerを使用したexe化の基本について解説していきます。

exe化する方法は、exe化したいプログラムがある場所で「pyinstaller」をインストールした環境を開き、pyinstaller –onefile プログラム名」というコマンドを実行することでexe化できます。

※onefile前の「–」の部分は、下のように「-」をスペースを空けずに2つ重ねてください。

pyinstaller --onefile プログラム名

 

では、実際に簡単なプログラムを作成してexe化してみましょう!

今回は、入力した数字の足し算を行う簡単なプログラムを作成し、exe化してみます。

# cal_sum.py
a = float(input("一つ目の数字:"))
b = float(input("二つ目の数字:"))
c = a+b
print("合計は「"+ str(c) +"」です。")
input()

これを実行すると2つの数字を聞かれ、その合計値が返されます。
(最後のinputは、合計値が返された後一時停止するために入れています。これが無いと、exe化して実行した際に、表示されて一瞬で消えてしまうので確認できなくなってしまいます。)

 

では先ほどのプログラムをexe化してみましょう。コマンドは、「pyinstaller –onefile cal_sum.py」です!

すると、下のように複数のフォルダやファイルが出来上がります。
この中の、「dist」というフォルダに作成されたexeが入っています!

 

では、実際にexeを起動してみましょう!すると、下の様にちゃんとexeのみで起動することが出来ました。
これで、Pythonの環境を構築していないPCでもPythonのプログラムを実行することが出来ます

 

2.2. コマンドの解説

ではここで、「pyinstaller」でよく使用されるコマンドについて解説していきます。

主なコマンドとしては、以下のものがよく使用されると思います。

  • –onefileプログラムを一つにまとめるためのコマンド。exe一つで起動させるには必須のコマンド
  • –noconsoleコマンドプロンプトを表示させないコマンド。表示させる必要が無い場合はつけると良い。
  • –icon=ファイル名:exe化した際のアイコンを指定するコマンド。ない場合はデフォルトのアイコンになる。

※アイコンの付け方については、別の機会に改めて解説します。

 

基本は「–onefile」でexeを一つにし、コマンドプロンプトが必要無いプログラムには「–noconsole」で表示を切るのが良いと思います。

ただし、今回作成したプログラムのようにコマンドプロンプト上で入力や出力が必要な場合は、「–noconsole」を付けてしまうとexeがうまく動かないので注意しましょう。

ではこの章のポイントのおさらいです。

Point
  • 「pyinstaller –onefile プログラム名」でexe化
  • 作成されたexeは「dist」フォルダ内に保存される
  • 「–noconsole」を付けることでコマンドプロンプトを起動せずに実可能

 

 

3. exeを重くしない方法

anaconda環境で上記の方法によりexe化した際に、とてつもなくexeファイルが大きくなることがあります。それは、「pyinstaller」の仕様によるものなのですが、具体的には、condaでインストールしたpandas」をexe化するとファイルの容量が大きくなります

この章では、その症状を防ぐ方法について解説します。

 

3.1. 必要な準備(仮想環境の構築)

まずは、「pyinstaller」用の新しい仮想環境を用意してください

仮想環境の作り方については、「Pythonの仮想環境利用のすすめ(Anaconda環境)」で解説していますので、そちらを確認してください。

今回は「pyin」という仮想環境を作成しました。

そして、新しく作成した環境では、ライブラリをすべてpipでインストールしてください!

pipとcondaは混ぜるとエラーを起こすことがあるため、pipのみでライブラリをインストールした環境を作成するする必要があります。

 

pipで環境を作成するために、仮想環境を作成したのちにpipのみcondaでインストールしてからライブラリのインストールを行ってください。

具体的には、コマンドプロンプト上で以下のコマンドを順番に実行します。

! 仮想環境の作成
conda create -n pyin
! 仮想環境の起動
activate pyin
! pipのインストール
conda install pip

 

後は、必要なライブラリをpipでインストールすれば準備は完了です!

 

3.2. exe化と重くなる理由について

では、実際にpipで作成した環境で「pyinstaller」を使ってexe化してみましょう。この章の冒頭で述べた通り、 condaでインストールしたpandas」をexe化するとファイルの容量が大きくなります。 そこで、「pandas」を使用しているプログラムを作成してexe両方の環境でexe化し、容量を比較してみましょう。

! use_pandas.py
import pandas as pd
df = pd.DataFrame([[1,2,3],[5,6,7]])
print(df)
input()

これをcondaとpipの環境それぞれでexe化すると、下のようにファイル容量が5倍以上変わります。(condaの環境で作ったexeファイルが重すぎます…)

このように、「pyinstaller」は「pip」で作成した環境でexe化することでファイル容量を小さくできるため、pyinstaller用の仮想環境を作っておくことをお勧めします!

 

Point
  • 「pyinstaller」では、「condaでインストールしたpandas」をexe化するとファイルの容量が大きくなる
  • 「pyinstaller」では、「pip」で作成した環境でexe化することでファイル容量を小さくできる
  • pipのみでライブラリをインストールした仮想環境を作成することで解決できる

 

 

4. 終わりに

今回は、「pyinstaller」を用いたPythonプログラムのexe化について解説しました。Pythonプログラムは、exe化することでPythonの環境を構築していないPCでも起動することが出来るため、作成したプログラムをPythonを知らない人に共有する際にとても便利です。

作成したプログラムを共有したい場合は、ぜひ今回の方法を使用してみてください。

 

また、このサイトでは初心者の方向けに「Python初心者入門講座」という講座を作っていますので、気になった方はそちらもご覧いただけると幸いです。

スポンサーリンク




スポンサーリンク




-pyinstaller, python
-,

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

Pythonで仕事を効率化しよう!(出来ることや仕事への活用方法)

少し前からよく聞くようにようになったプログラミング言語の一つである「Python」。 なんとなく便利らしいけど、具体的にどんなことが出来て、どのように仕事を効率化できるか分からないな~という方も少なく …

第1章 Pythonの導入(Anacondaを使用)

1.はじめに このサイトは、これからPythonを使って仕事や作業を効率化したいと思っている方向けに、Pythonの導入から使用例をなるべく簡単に伝えたいと思い作成しました。 Pythonの魅力といえ …

第9章 Pythonの入力(input)を使ってみよう

この章では、入力文(input)を学んでいきましょう!入力文とは、プログラムを実行した後に、あとから好きな文字や数字をプログラムに反映させる方法です。 解説内容 inputの使い方 inputを使って …

第13章 Pythonでテキストファイル・csvファイルへの書き出しをしてみよう(write)

この章では、「テキストファイル」と「csvファイル」への書き込みについて解説したいと思います。Pythonで行った処理を保存する方法になりますので、しっかりと使えるようになりましょう! 解説内容 テキ …

Spyderの実行場所について(Python初心者)

Spyderの便利な機能として、「F9キーでコードを部分的に実行できる」というものがあります。 ただし、「F5キーで全体を実行する場合」と実行場所が異なることがあり、私自身使用しているときに混乱したこ …

スポンサーリンク


初めまして、サイトを運営しているキユと申します。

このサイトでは、まったくの初心者がPythonを使って、単純作業や仕事を効率化できるようになるまでに必要なことをまとめています。