__main__.pyを使ったzipファイル実行を試してみた

トイプーこと id:atsuoishimoto が書いていた、zipファイルで実行可能なPythonアプリケーションを試してみた。
http://d.hatena.ne.jp/atsuoishimoto/20120503/1336050988
試した環境はWindowsXP、Python2.7。

__main__.py

# coding: utf-8
import SimpleHTTPServer
SimpleHTTPServer.test()

SimpleHTTPServerを実行して、カレントディレクトリをHTTPで公開するだけの単純なスクリプト

compileallでコンパイルしてみる

ソースコードそのままでは芸がないので、zip化の前にcompileallでバイトコードを作ってみることにした。

C:\work\sandbox\zipapp>python -OO -m compileall __main__.py
Compiling __main__.py ...

これで __main__.pyo ファイルが作成される。
このファイルを圧縮ソフトでzip化し、 httpserver.zip という名前で保存した。

実行

C:\work\sandbox\zipapp>python httpserver.zip
Serving HTTP on 0.0.0.0 port 8000 ...

問題なく動きました。なかなか面白い。