PyQtでアプリを作る

PyQtでhtmlをごにょごにょするアプリを作りたい@Windows
今まではwxPythonを使っていたが、画面デザインツールがいまいち使いづらい。
Qtのデザインツールを使ってみたらよさげだったので、PyQtに移行しよう。
最近LGPL 2.1もライセンスの選択肢に入ったので、もはや避ける理由もないだろう。
(追記)PyQtそのものは、現在GPL/商用ライセンスのみ選べるようです。情報提供元は、http://d.hatena.ne.jp/methane/20090509/1241873274
SQLiteまで入っていてオトクですね。


htmlの解析は、BeautifulSoupを使うのも手だが、
今回の用途ではパース速度も重視したい。よってlxmlを使う。


以下のものをダウンロードする。

setuptoolsは、Windows向けPython 2.6用パッケージが存在しない。
よって、setuptools-0.6c9.tar.gzをダウンロードする。
解凍後、

c:\Python26\python setup.py bdist_wininst

的な感じでdist\setuptools-0.6c9.win32.exeが出来る。これをインストールする。


setuptoolsが入れば、lxmlはeasy_install.pyを使って導入できる。

c:\Python26\Scripts\easy_install.exe lxml

setuptoolsなしで、lxmlのパッケージlxml-2.2.win32-py2.6.exeを入れてもよい。
setuptoolsがあれば、他にも便利なパッケージを導入できるだろう。

PyQtで作ったアプリを配布する

WindowsのexeとしてPyQtのアプリを配布したい。
定番としてpy2exeがあるが、今回はcx_Freezeを用いる。
コイツはLinuxでも使える。

cx_FreezeでPyQtやlxmlを用いたスクリプトを配布する場合には気をつける必要がある。
なぜなら、cx_Freezeでは検知できないモジュールが実行のために必要となるからだ。
PyQtの場合はsip、lxmlの場合はlxml._elementpathなどを教えてあげる必要がある。
僕が作ったアプリの場合、gzipやencodings.utf_8・encodings.asciiも必要だった。


具体的には、以下のようなスクリプトで実行ファイル一式を得ることが出来た。

c:\Python26\Scripts\cxfreeze --include-modules="sip,lxml._elementpath,gzip,encodings.utf_8,encodings.ascii" application.py

Qt/PyQtのドキュメントを読む

PyQtは、ローカルのドキュメントツールがある。
QtやPyQtのドキュメントは以下のサイトでも読むことができる。