PyQt でクロスプラットフォームなデスクトップアプリケーションを
ここ何ヶ月かデスクトップアプリケーションにどっぷりな感じです。パッケージングをもっと簡単にしたい!ということで色々と試行錯誤しておりました。linux, mac はいい感じですが、Windows は・・・ py2exe でフリージングのみしかしていませんでした。配布とインストールは自動解凍書庫、アップデート、アンインストールは・・・。そこで今回 (やっと) 覚えたのが Inno Setup や WiX といった Windows 用のパッケージビルダです。備忘録がてら、Python でのパッケージングをまとめてみました。 パッケージングについて 大きく 2 つのフェーズに分かれています。 フリージング: Python バンドルや他の必要なライブラリーを寄せ集め、実行可能形式にまとめます。 Windows と OS X については以下のライブラリでフリージングします。 Windows 用: py2exe OS X 用: py2app Linux を含むクロスプラットフォームなフリージングができる cx_Freeze というのもあります。 ディストリビューションのビルド Windows: Microsoft Windows Installer はアップグレード、アンインストール、トランザクション処理を使った複数パッケージの管理とかの便利機能を持っています。 WiX ( Wikipedia ): MSI 形式でビルドするための MS 製のオープンソースツールです。WXS という XML ファイルを作成し、それを元にビルドします。 Inno Setup ( 日本ドキュメント ): Windows インストーラ (Setup.exe) を作成するオープンソースツールです。Delphi で書かれています。 NSIS ( Wikipedia ): 多機能。スクリプト駆動型のWindows用インストールシステム。Mozilla, Google, BitTorrent などにも使われています。 他にもあるかもです。 OS X: hdiutil : py2app でできた *.app を *.dmg にしてくれるらしいです (使ったことありません)。 クロスプラットフォームな setup.py の書き方 Windows