exe変換 (py2exe)
Pythonのスクリプト(.py)をWindows実行形式であるexeへ変換することができます。 py2exeを使用し、exe化を行ってみましょう。
下記リンクからダウンロードを行いましょう。
http://sourceforge.net/projects/py2exe/files/py2exe/
ダウンロード終了後、インストールを行います。全てデフォルト設定で構いません。
「py」から「exe」への変換にあたり、必要なものは下記4つとなります。
- Python (Python実行環境)
- py2exe (変換ライブラリ)
- test.py(変換元ソースファイル、ファイル名は任意)
- setup.py(セットアップスクリプト、ファイル名は任意)
1つ目と2つ目はすでにあるはずなので、3つ目と4つ目を用意しましょう。
まずはソースファイルです。
-- ファイル名:test.py --
# -*- coding: utf-8 -*-
import datetime
now = str(datetime.datetime.today())
out = open('nowtime.txt', 'w')
out.write(now)
out.close()
実行すると「nowtime.txt」というファイルに現在時刻を出力するプログラムです。
次はセットアップスクリプトです。
-- ファイル名:setup.py --
# -*- coding: utf-8 -*-
from distutils.core import setup
import py2exe
option = {
"compressed" : 1 ,
"optimize" : 2 ,
"bundle_files" : 1
}
setup(
options = {
"py2exe" : option
},
console = [
{"script" : "test.py"}
],
zipfile = None
)
変換オプションやソースファイル名を記述します。オプションについては後ほど解説します。
準備が完了したらコマンドラインにて下記コマンドを実行します。
python setup.py py2exe
コマンド実行後、コンソールに処理経過が出力されますので暫く待ちましょう。
変換処理終了後「dist」および「build」ディレクトリが生成されているはずです。変換されたexeファイルは「dist」ディレクトリ内に「test.exe」というファイル名で保存されています。「test.exe」ファイルを実行し、同一ディレクトリへ「nowtime.txt」というファイル名にて現在時刻が出力されていれば成功です。
セットアップスクリプトの変換オプションを詳しく見てみましょう。 先程変換に使用したファイルです。
-- ファイル名:setup.py --
# -*- coding: utf-8 -*-
from distutils.core import setup
import py2exe
option = {
"compressed" : 1 ,
"optimize" : 2 ,
"bundle_files" : 1
}
setup(
options = {
"py2exe" : option
},
console = [
{"script" : "test.py"}
],
zipfile = None
)
上記ファイルでは3つオプションを指定しています。
- 「compressed」 出力を圧縮するかしないか
- 「optimize」 最適化するかしないか
- 「bundle_files」 exeファイルにランタイムdllを含めるか含めないか
「compressed」および「optimize」については、おそらくどのような状況でも上記指定にて問題無いかと思われます。残る「bundle_files」は状況によって使い分けが必要となりそうです。
-- ランタイムdllを含めない場合 (bundle_files:2)
exeとdllが分けて生成されるのでプログラム本体(exe)が軽量となる
-- ランタイムdllを含める場合 (bundle_files:1)
exeとdllを含めて単一ファイルで出力されるが、ファイルサイズが大きくなる(dllファイル単体で2MB超なので)
配布先や諸々の状況において最適なオプションを指定しましょう。 上記以外のさらに細かい設定も出来る様ですが、本項では割愛します。
exe変換は以上です。次はデータベース接続方法を学びましょう!
