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

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
72
Help us understand the problem. What is going on with this article?
@kounoike

Pyinstaller で Python スクリプトを Windows で実行可能な .exe にする

More than 5 years have passed since last update.

Python スクリプトを Windows で実行可能な .exe にする

これまでは、py2exe や CX_Freeze など、setup.py をいちいち書かないといけませんでした。最近は PyInstaller がオススメということらしいので試してみた。

インストール

pip install pyinstaller

対象スクリプト

C:\Users\kounoike\Documents\python\installer-test>type hello.py
#!python
# coding: utf-8

print "hello world"

C:\Users\kounoike\Documents\python\installer-test>python hello.py
hello world

.exe の作成

pyinstaller hello.py

これだけ。面倒な setup.py の記述も何もなし。dist\hello 以下に hello.exe と必要なライブラリ群が出来上がる。

問題点

どうも py2exe などに比べて過剰にパッケージを取り込んでしまうようで、

#!python
# coding: utf-8

import matplotlib.pyplot as plt

print "hello world"

と書き換えただけで、dist 以下が100MBにも膨れ上がる。見てみると、IPython とか、QT4、OpenGLなど余計なものがまぎれこんでいるのがわかる。

そこで virtualenv ですよ。

というわけで、virtualenv を使いましょう。http://qiita.com/kounoike/items/14bfd7c328be0d69c770 などを参考にしてください。

PyInstaller を virtualenv で使う際の注意点は一つ。pywin32 を easy_install で入れておきましょう。

追記@2015/07/21

あれ、やっぱり日本語フォルダに置くとうまく動かない・・・

  • ネットワークドライブの日本語フォルダ作ってそのフォルダをシフト右クリックしてコマンドプロンプトで開く→大丈夫
  • デスクトップに日本語フォルダを作ってそのフォルダをシフト右クリックしてコマンドプロンプトで開く→ダメ

なんでネットワークドライブだと大丈夫なんだろう?

72
Help us understand the problem. What is going on with this article?
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
kounoike

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
72
Help us understand the problem. What is going on with this article?