【Python】「.py」をexeファイルに変更する方法!エラーになる方必読

Pythonのプログラムを作成する際に、そのプログラムをWindowsの環境で実行したいと思うはず。
そもそも、Pythonが動いている環境下では「.py」のプログラムは実行できますが、環境がない場合は動きません。

このPythonで作成したプログラムを実行するには、Pythonを導入してない環境で作成したプログラムを実行するには、OSに合わせた拡張子の変更が必要となります。
そんな時に役に立つのが、Pythonモジュールの「pyinstaller」です。

Windows環境下で動作するように「.py」のファイルを「.exe」に変更する「pyinstaller」

そもそも「exe」ファイルですが、何かというと、Windows環境下で使われることが多い実行ファイルです。
Pythonでは拡張子が「.py」なので、このファイルをWindowsでそのまま使っても動きません。

ですので、Windows環境下で動かせるように「exe」ファイルに変更するようにするのが、「pyinstaller」となります。

pyinstallerインストール

pyinstallerのインストールは以下となります。

  1. 「Winマーク+R」を押し、「ファイル名を指定して実行」を表示 ⇒ 「cmd」と入力
  2. コマンドプロンプトを起動し、以下コマンドを実行
pip install pyinstaller

pyinstaller実行

pyinstallerをインストール後は、対象のファイルをexeファイル化するためのコマンドを実行します。

pyinstaller test.py
-
-
-
21990 INFO: Building EXE from EXE-00.toc completed successfully.

上記のように「successfully」となれば、同じフォルダ内に「dist」フォルダが作成され、その配下に対象のexeファイルができています。

exeファイルを一つにする方法

pyinstallerで実行したexeファイルは複数ファイルのフォルダ内に作成されます。
このフォルダ内のファイルをまとめて、一つのexeファイルにしたい場合は以下のコマンドを実行します。

pyinstaller test.py --onefile
-
-
-
21990 INFO: Building EXE from EXE-00.toc completed successfully.

以上がPythonプログラムファイルのexeファイル化の流れとなります。

最新Verの「pyinstaller」ではエラーが発生する

新バージョンのPython「3.8」をインストールし、「pyinstaller」を実行したけど、エラーが表示され、exeファイル化ができないということはないでしょうか。

Windowsのexeファイル化でエラー

TypeError: an integer is required (got type bytes)

この「pyinstaller」は現在、Python3.6までしかサポートがされていません。
そのため、Python3.8環境下で「pyinstaller」を動かすとエラーが吐かれてしまい、exeファイルが作成されません。

「pyinstaller」を動かす方法

それでは、「pyinstaller」を動かす方法ですが、まずはバージョンの低い、Python3.6をインストールしましょう。
pyinstallerは現在、Python3.6までサポートしています。

3.6のダウンロードは以下URLで落としてください。
https://www.python.org/downloads/

ちなみにPythonのインストール手順は以下となります。

Python3.6のインストールが完了したら、exeファイル化したい「.py」ファイルの頭に以下のように設定を入れます。

#!python3.6

#!python3.6
print(1 + 2)

これで、上記のコマンドで「pyinstaller」をたたけば成功しますよ。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!