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で圧縮されている。
とりあえず、すべての目的は達せられたわけであります。