Windows環境下でlxml+python(lxmlのバイナリは未使用)
はじめに
最近、pythonでHTMLテキストをパースすることが必要になった。当初、HTMLパーサとして、BeautifulSoupを利用していた。しかし、しばしばある特定のWebページのパース時に、HTMLParseErrorという例外が発生した。そのため、他のpython用のHTMLパーサを調べた所、lxmlというものがあることを知った。そこで、このlxmlをWindows環境下でインストールしようとしたのだが、かなり手間取った。
この記事では、Windows環境下で、lxmlのインストーラを使用しないで、lxmlをpythonから利用可能にする手順を説明する。
lxmlのインストールが完了した時点で気付いたのだが、最新でないバージョンのlxmlにはWindows用のインストーラが配布されている。そちらを利用すれば、この記事で説明するような複雑な手順なしにlxmlをインストールできると思われる。
前提
- OSはwindows vista
- pythonのバージョン:2.6
lxmlのインストール
easy_installを既に導入している場合は、単純にコマンドライン上から「easy_install lxml」と実行します。
easy_installが未導入の場合は、まずは上記のlxmlのページから「lxml2.2.3.tar.gz」をダウンロードします。このファイルを解凍したら、コマンドライン上で、解凍場所まで移動し、「python setup.py install」と実行します。
vcvarsall.batが見つかりませんというエラーメッセージが出た場合
原因はVisual Studio C++2008がを入れていないためです。なので、Visual Studio C++2008を入れます(Visual Studio C++2005では駄目です)。
libxml/xmlversion.hが見つかりませんというエラーメッセージが出た場合
lxmlのインストールに必要なライブラリlibxml2がlibxslt存在しないためです。libxml2は、iconvとzlibというライブラリも使用しています。したがって、libxml2、libxslt、iconv、zlibの4つのライブラリのWindows用バイナリをこちらのサイトからダウンロードします。
各ライブラリは、bin、include、libの3つのフォルダから構成されています。環境変数を設定する手間を考えて、4つのライブラリの中身を1つのフォルダにまとめる。このフォルダのフルパス名を仮に「my」とします。そして、環境変数のLIBに「my/lib」を、INCLUDEに「my/include」を追加します。必須ではないですが、各ライブラリ内のコマンドを手軽に使用したい場合は、環境変数PATHに「my/bin」を追加します。
この設定までを済ませれば、lxmlのインストールは成功するはずです。
lxmlのインストール後の設定
とりあえず、lxmlがインストールできたかを確認するために、pythonインタプリンタ上から、以下のコマンドを実行します。
from lxml import etree
エラーにならなければ、インストール完全成功です。