- 修正:準備のインスコで py25-setuptools と py25-py2app 追加
とりあえずスクリプトをアプリ(.app)にしてみるメモ。
(環境:MacOSX10.4, Python2.5)
wxPythonのサンプルスクリプトを用意する
とりあえず本家サイトかの How to Learn あたりから短いサンプルコードを借りて使う。(How to Learn wxPython - wxPyWiki)
実行すると「Hello World」ってウインドウが開くだけのスクリプト
sample.py
#!/usr/bin/env python # *-# -*- coding: utf-8 -*- import wx app = wx.App(False) # Create a new app, don't redirect stdout/stderr to a window. frame = wx.Frame(None, wx.ID_ANY, "Hello World") # A Frame is a top-level window. frame.Show(True) # Show the frame. app.MainLoop()
setup.pyのひな形を作る
シェルで以下コマンド(sample.pyのあるディレクトリで)
py2applet --make-setup - sample.py
すると「setup.py」ファイルが作成される。
""" This is a setup.py script generated by py2applet Usage: python setup.py py2app """ from setuptools import setup APP = ['sample.py'] DATA_FILES = [] OPTIONS = {'argv_emulation': True} setup( app=APP, data_files=DATA_FILES, options={'py2app': OPTIONS}, setup_requires=['py2app'], )
アイコンも付けてみたい
そのうちオリジナルのアイコンとか付けたくなるかもなので。
sample.icnsを用意する
とりあえず適当なアプリケーションのアイコンを練習用として使う。
「パッケージの内容を表示」で開いて拡張子が「icns」のファイルをコピーしてsample.pyのディレクトリに置く。(ファイル名をとりあえず「sample.icns」としておく)
setup.pyを若干書き換える
OPTIONSの行を
OPTIONS = {'argv_emulation': True}
以下に書き換える
OPTIONS = { 'argv_emulation': True, 'iconfile':'sample.icns', }
ビルドしてアプリ作成
shellから
python setup.py py2app
すると処理が実行されて「dist」ディレクトリの中に「sample.app」が出来上がってるはず。
メモ
そのうちWinやLinuxでクロスプラットフォームのアプリ化を試してみたい。