牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

ちょっとしたGUIアプリを作ってみたくなったからwxPythonのメモ

  • 修正:準備のインスコで py25-setuptools と py25-py2app 追加


とりあえずスクリプトをアプリ(.app)にしてみるメモ。
(環境:MacOSX10.4, Python2.5)

準備

MacPortsで次のものをインストール

  • py25-wxpython
  • py25-setuptools
  • py25-py2app

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クロスプラットフォームのアプリ化を試してみたい。