PythonでスタンドアロンなGUIアプリを作る
下準備
Homebrewのインストール
クロスプラットフォームなGUIアプリを作るためにQtというライブラリを利用する。
Qtをインストールするのにbrew
コマンドが必要となる。
このページの先頭にあるスクリプトをコピーしてターミナル上で実行する。
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。