Google app engine / python で lxml

1.7.0の更新履歴に lxmlのunicodeサポートみたいな事が書いてあった。

つまり、lxmlが使えるようになったらしい。早速使ってみようと思ったらちょっと詰まったのでメモ。

自前でHTMLパーサを作らない場合、BeautifulSoup3くらいしか手軽に導入できるライブラリがない上に

ベンチマークしているサイトの情報によれば、lxmlの方が結構な差が出るくらい早いようなので

これからGAE/PでHTMLやXML解析をしたい人はlxmlを選んだほうがいいかも?


さて、導入方法は、まずPython2.7にする必要があるのと、

app.yamlに以下を追加

libraries:
- name: lxml
version: latest


もし、Python2.7にしたばかりで、app.yamlの設定がまだなら

application: your-app-name
version: 1
runtime: python27
api_version: 1
threadsafe: true

- url: /(.*)
script: main.app

みたいな感じの設定を追加。

この2.7用の設定については別記事参照。

開発環境では、これだけではダメで(本番環境ではまだ試していない)

別途、lxmlをインストールする必要がある。

コマンドでインストールもできるみたいだけど、

面倒くさがりな私は

ちょい古いバージョンでリリースされているインストーラを使って導入した。

インストーラが用意された中で一番最新のバージョンは、

この記事を書いた時点では2.3のものみたい。

http://pypi.python.org/pypi/lxml/2.3

今回WindowsでGAEのPythonも2.7用の設定なので、

下の方にある「lxml-2.3.win32-py2.7.exe (md5)」をDLしてインストールした。

あとは使い方が書いてあるサイトなり、マニュアルなりに書かれた通り

importして使うだけ。