BLOGTIMES
2019/12/28

Windows の Python に lxml を入れようとしてハマる

  windows10  python 
このエントリーをはてなブックマークに追加

Windows の Python に pip でちょっと古い lxml を入れようとしたら以下のようなエラーが出てハマってしまいました。

C:\Users\h\AppData\Local\Temp\xmlXPathInit1mwhsdwf.c(1): fatal error C1083: include ファイルを開けません。'libxml/xpath.h':No such file or directory error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.24.28314\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2 ********************************************************************************* Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed? *********************************************************************************

エラーから察するにビルドに必要な libxml2 とか libxslt がないということのようです。
Linux であれば yum install libxml2-devel libxslt-devel とやれば一発で解決なのは分かるのですが、今回は Windows。

もちろんこれらライブラリをインストールしても良いのですが、ここで一工夫。今回のエラーはコンパイル時に発生するものなので、コンパイルしなくて済むビルド済みのバイナリがあれば、エラーを回避することができます。要は lxml · PyPI で、インストール済みの Python に合うバージョンを探してインストールすれば良いということです。

今回は Python 3.7 の 64bit 版だったので、Download files から cp37 と win_amd64 が含まれている Wheel が用意されているバージョンを探しておきます。

あとはこんな感じで見つかったバージョンを指定してインストールしてやれば大丈夫でした。

pip install lxml==4.2.2

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/11447
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン