Help us understand the problem. What is going on with this article?

PyInstallerでexeファイル化

More than 1 year has passed since last update.

業務で使用するPythonスクリプトを作っても、誰もがpythonがインストールされているとは限りません。
そんなときは、PyInstallerでWindows用のexeファイル(実行ファイル)に変換して配布するのがよいと思われます。

環境

  • OS : Windows 10 64bit
  • Python 3.6.0 (Anaconda3-4.3.1)
  • PyInstaller 3.4

PyInstallerのインストール

  1. コマンドプロンプトを起動
  2. pipでPyInstallerをインストール
$ pip install pyinstaller

exeファイルへの変換

ここでは、exe化したいpythonファイルをTest.py、作業フォルダをC:\PythonFilesとします。

  1. 作業フォルダに移動
  2. pyinstallerでexeファイルに変換
$ cd C:\PythonFiles
$ pyinstaller Test.py

結果

14719 INFO: Building COLLECT COLLECT-00.toc completed successfully.

実行後、completed successfullyと表示されたらexeファイル化完了です。
exeファイル化に成功すると、作業フォルダ内に下記のフォルダとファイルが生成されます。

  • pycache
  • build
  • dist
  • Test.spec

dist\Testフォルダ内にあるTest.exeファイルを実行するとスクリプトが走ります。
(配布するときはdistフォルダ毎配布します)

オプション

--onefile

onefileオプションを付けると、関連するファイルを1つにまとめてexeファイルを生成します。

$ pyinstaller Test.py --onefile

--noconsole

noconsoleオプションを付けると、コンソール(コマンドプロンプト)の黒い画面を表示しません。

$ pyinstaller Test.py --noconsole

その他備忘録

  • 1ファイル化したexeファイルは、1ファイル化していないexeよりも起動が遅いようです。
  • seleniumを含むpythonファイルをonefileオプションを付けて変換したところ、exeファイル化は成功しましたが、実行するとエラーになりました。seleniumを含むpythonファイルは1ファイル化できないようです。
  • noconsoleオプションを付けても、実行中にエラーが出るとコンソールが表示されます。
takanorimutoh
プログラミング経験ゼロのノンプログラマー。2019年1月からpythonの勉強を始めました。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした