読者です 読者をやめる 読者になる 読者になる

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

GUI プログラミング Python PySide

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。