【Python】コンパイル & exe 化してみる!悩んだ点も解説(初心者向け)

自作の Python ファイルを exeファイルにして簡単に実行したい!!!

 

そんな思いからこの記事は作成されました。どーもTakeです。

この記事ではPythonで自作の py ファイルを exec ファイルにする方法について簡単に解説します。

 

 

Python ファイルを exe 化するには、Python ファイルを一度コンパイルする必要があります。

※ コンパイル・・・コンピュータが実行可能な形式(機械語)に変換する処理のこと

 

Python ファイルをコンパイルしたいだけなら、

コマンドラインに「python -m compileall <ファイル名>」と入力すれば、コンパイル可能です。

 

しかし「exe」ファイルを作りたい場合は、「pyinstaller」モジュールをインポートし、

そのモジュールから「pyinstaller <ファイル名> --onefile」とコマンド実行する必要があります。

 

コンパイルする方法
  1. python -m compileall <ファイル名> ・・・ Python標準ライブラリ、「exe」ファイルはできません。代わりに「pyc」ファイルができます。
  2. pyinstaller <ファイル名> --onefile ・・・「pip」でインストールする必要あり、「exe」ファイル作成できます!

 

この記事では、「compileall 」と「pyinstaller 」の二つの手法について簡単に解説します。

またそれに加え、私がコンパイルさせるときにうまくいかなかった点についても解説します。

 

うまくいかなかった点
  1. 実行した画面がぱっと出てぱっと消える!
  2. 日本語を含むソースファイルだとうまくコンパイルできない!

 

スポンサーリンク

標準ライブラリ「compileall 」でコンパイル

まず下記の「tmp.py」ファイルをコンパイルしたいと思います。

「tmp.py」ファイルの中身は下記になります。

 

ただ「Hello World」と表示させるだけのファイルです。

あとはPython を実行するコマンドラインに下記を入力すればOKです。

 

これだけです。「tmp.py」ファイルが置かれているフォルダ(ディレクトリ)をご確認ください。

「__pycache__」というフォルダが作成されますので、その中を確認します。

 

「tmp.cpython-37.pyc」が作成されますので、それをダブルクリックします。

すると下記のように「tmp.py」ファイルが実行されます。

 

これだけです。

「tmp.cpython-37.pyc」でいいよ~って人はこのやり方でOKだと思います。

ですが、どうしても「exe」化したい!という人は次の方法をご確認ください。

 

「pyinstaller」をインストールして exe ファイルをつくる

先程と同様に下記の「tmp.py」ファイルをコンパイルしたいと思います。

まずは「pyinstaller 」をインストールする必要があります。

下記コマンドを実行してください。

 

インストールが完了すれば、下記コマンドを実行します。

 

すると下記のようなファイルとフォルダが作成されます。

 

「dist」フォルダ下に「tmp.exe」ファイルが作成されていることが確認できます。

「tmp.exe」をダブルクリックし、処理が実行されることを確認できます。

 

 

実行した画面がぱっと出てぱっと消える!

ダブルクリックして実行したら下の画面が夏の花火のようにぱっと出てぱっと消える!

 

 

そんな人いませんか?

これはコンパイルしたファイルは実行されているんですが、実行が終わると画面がすぐに閉じるからです。

もしこの画面を確認したい場合は、ソースコード内で処理を待機させるコードを追加する必要があります。

 

下記は先程例にあげました「tmp.py」ファイルのソースコードです。

 

ここに「input」という記述があります。

「input」はキーボード入力を待つ処理のことで、わざと入れています。

 

こうすることで画面が消えずキーボード入力が完了するまで処理を待つようにしてくれます。

 

日本語を含むソースファイルだとうまくコンパイルできない!

コンパイルしようとしたときにこんな感じのエラーがでてきました。

 

エラーを見る限り、文字コードがいけてない感じ。。。

そんなときは下記のように Python ファイルの文字コードを「UTF-8」に変更して再度実行すればOKです。

 

私の場合、Python ファイルの文字コードが「SJIS」だったので、

それを「UTF-8」に変更したらうまくコンパイルできました!

 

最後に

いかがでしたでしょうか?

この記事では、Pythonで自作の py ファイルを exec ファイルにする方法についてを解説しました。

 

この記事が開発のお役に立てれば幸いです。

ではでは。

 

 

スポンサーリンク
おすすめの記事