python amd64でexeファイルの作成
pythonで書いたプログラムを誰かに実行してもらおうと思ったとき、実行する環境にもpythonが要る。
これって不便。
それに、スクリプト言語だからライバルにはないアイディア満載のソースコードが見られてしまう場合もある。(コンパイル済みのpycやpyoで配布すれば良いんだけど)
そこで、しこしこ作ったpythonスクリプトからWindows EXEを作ってくれるpy2exeの登場。
python.matrix.jpのpy2exeモジュールについて
これだと実行環境にわざわざpythonを用意する必要なし!
ソースコードも以下のようなリバースエンジニアリングしなければみられないし。
http://d.hatena.ne.jp/xor0x35/20081219/p1
リバースエンジニアリングしなければいけないということは、使用許諾でも縛りやすいしね。
py2exeについてはさっぱりちんぷんかんぷんだけど、python.matrix.jpの「py2exeモジュールについて」を参考にpython 2.6 amd64 + py2exe 0.6.9 amd64で試してみた。
error: bundle-files 2 not yet supported on win64
エラーが出る!よくわからんがサンプルプログラム通りだとamd64版ではだめらしい。
なぜなんだぜ!?と思ってpy2exeのソースコードを見てみたら、is_win64 and self.bundle_files < 3でエラーになるようにされてる。
しょうがないのでsetup.pyの"bundle_files"を
"bundle_files": 3
のように変更して再度トライ!
ぉー、"bundle_files": 3だからexeと共に大量のファイルがある・・・が、一応Windowsで実行できるexeになっています。
exeの中を確認すると、最適化オプション付きバイトコンパイルされたpyoで圧縮されている。
とりあえず、すべての目的は達せられたわけであります。