Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
149
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@takanorimutoh

PyInstallerでexeファイル化

業務で使用する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オプションを付けても、実行中にエラーが出るとコンソールが表示されます。
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
149
Help us understand the problem. What are the problem?