PythonでスタンドアロンなGUIアプリを作る

Mac Yosemite 上に構築する。

下準備

Homebrewのインストール

クロスプラットフォームGUIアプリを作るためにQtというライブラリを利用する。

Qtをインストールするのにbrewコマンドが必要となる。

Homebrew

このページの先頭にあるスクリプトをコピーしてターミナル上で実行する。

virtualenvのインストール

GUIアプリを作るには大規模なpythonライブラリのインストールが必要となるので、

既存の環境にあれこれインストールして汚したくない。

python環境を目的に合わせて切り分けられるvirtualenvをインストールする。

sudo pip install virtualenv virtualenvwrapper

vitualenv環境作成

mkvirtualenv pygui
workon pygui

必要なもののインストール

  • Qt4
  • PySide
  • py2app

Qt

QtはクロスプラットフォームGUIアプリケーションが作成できるライブラリ。

Qt4とQt5があるが、QtをPythonから扱うためのPySideが現在Qt5に対応していないため4を使う。

brew install -v qt

PySide

QtをPythonから扱うためのライブラリ。

PyQtというライブラリもあるが、ライセンスの観点からはPySideの方が使いやすい。

先ほど作ったvirtualenv環境の中で、

pip install -v PySide

を実行する。

PySideのインストールには10分ほど時間がかかる。

進捗を見えやすくするために-vオプションを指定している。

続いてPythonにPySideのライブラリの場所を教える。

これをしないとimport時にエラーになる。

export DYLD_LIBRARY_PATH="$HOME/.virtualenvs/pygui/lib/python2.7/site-packages/PySide"

py2app

Pythonで書いたスクリプトスタンドアロンなアプリケーションとしてまとめるためのライブラリ。

他にはPyInstallerが似たような機能を提供しているが、Cで書かれたライブラリを扱う時にはpy2appの方が便利。

pip install py2app

サンプルアプリを作ってみる

cd ~
git clone git@github.com:PySide/Examples.git
cd ~/Examples/examples/dialogs
py2applet --make-setup findfiles.py
python setup.py py2app -A
open ./dist/findfiles.app

PySideのサンプルアプリが多数収録されたレポジトリがあるのでクローンする。

その中にファイルを検索するスクリプトが含まれているので、それが動いたらOK。