【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 ファイルにする方法についてを解説しました。

 

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

ではでは。

 

 

プログラミング学習、独学では難しくないですが?
  • プログラミングをどう勉強したらいいのかわからない
  • わかりにくい参考書が多く、自分一人では解決できそうにない
  • 壁にぶつかった時の解決策がわからない
そんな人にはプログラミングスクールtech boost」がおすすめです。

 
 

プログラミングスクールtech boost」の魅力
  1. オーダメイドの自分の目標にあったプランが受講できる!
  2. 現役エンジニアがあなたの学習を全力サポート!
  3. スクール卒業後のキャリアサポートも充実インターン/就職/転職/独立 など
  4. オリジナル Web アプリも作れるようになります!
  5. 近年トレンドの AI や IoT、ブロックチェーンも学習できます!
  6. 受講スタイル(通学かオンライン授業)も選択可能!

 

こんな人におすすめ!

  • 未経験からでもプログラミングをしっかり学びたい!

未経験からでも受講期間中にオリジナルサービス開発レベルまで全力でサポートします。

 

  • プログラミングを一人で学ぶことに限界を感じた!

未経験で一からプログラミング学習するには限界があります。

現役エンジニアがあなたの目標に沿った学習プランを提案してくれるので安心して学習できます。

 

  • 技術力をつけて、IT企業に就職やフリーランス、独立を目指したい!

卒業後のキャリアサポートも充実しているため、未経験からも IT 業界に参入できます。

 

悩んでいるなら、お気軽に無料説明会へ!

現役エンジニアの私がいいますが、IT 業界は圧倒的な人材不足です。

 

スクールは料金が高いからなあ」と悩まれている人もいると思いますが、

IT業界は仕事が有り余っているため、一度学べば速攻で資金回収できます。

 

もしプログラミング学習で悩んでいたり将来的に IT企業、フリーランスなどで働きたいのであれば、

プログラミングスクール「tech boost」へ無料相談だけでもいってみてはいかがでしょうか?

おすすめの記事