2019/06/08

Windows に python-lzo をインストール

@Windows 10 Pro 64bit

LZO というアーカイブ系ライブラリを Python でラップしてくれるパッケージに python-lzo があります。

Linux では pip で一発インストール可能なのですが、Windows ではエラーが出てしまいインストールできません。

> pip install python-lzo
Collecting python-lzo
  Using cached https://files.pythonhosted.org/packages/af/60/41f17f56c920a956f1d4b9f04f9755c045b2b06b9dd933b33cdd37ab9fd7/python-lzo-1.12.tar.gz
    ERROR: Complete output from command python setup.py egg_info:
    ERROR: Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\yusuk\AppData\Local\Temp\pip-install-jzhjob69\python-lzo\setup.py", line 46, in <module>
        raise Exception("please set LZO_DIR to where the lzo source lives")
    Exception: please set LZO_DIR to where the lzo source lives

公式の Issue によると、これは仕様で、自身でコンパイルしないといけないようです。

参考

unable to install python-lzo using "pip install python-lzo" on Windows · Issue #5 · jd-boyd/python-lzo · GitHub

というわけで、やってみました。

ソースコードをダウンロード

Download よりソースコードをダウンロードします。 今回は lzo-2.10.tar.gz をダウンロードしてきました。

展開

先のファイルを展開します。

なお、以後のコマンドライン操作は "x64_x86 Cross Tools Command Prompt for VS 2019" 上で行っています1, 2, 3

ダウンロードしたフォルダに移動して、展開します。

> cd %HOMEPATH%\Downloads
> tar xzf lzo-2.10.tar.gz

現在では Windows で tar が使えるので、これを使わない手はないと思いますが、もちろん 7-Zip 等その他のツールを使っても大丈夫なはずです。

参考

Windows その14 - Windows上でcurlとtarコマンドが利用可能に - kledgeb

ビルド

Linux 以外のビルド方法は "B\00README.TXT" に書かれています。

基本的には対象のバッチファイルを実行すればよいだけです。

> cd lzo-2.10
> .\B\win32\vc.bat
...
//
// Building LZO was successful. All done.

pip install

環境変数 LZO_DIR に先ほどビルドを実行したフォルダを指定します。

あとは、仮想環境なりユーザー環境なりに pip install で完了です。

1
2
3
4
5
6
7
> LZO_DIR=%CD%
> pip install python-lzo
Collecting python-lzo
  Using cached https://files.pythonhosted.org/packages/af/60/41f17f56c920a956f1d4b9f04f9755c045b2b06b9dd933b33cdd37ab9fd7/python-lzo-1.12.tar.gz
Installing collected packages: python-lzo
  Running setup.py install for python-lzo ... done
Successfully installed python-lzo-1.12

64bit 系の人は注意

"python-lzo-1.12" は 32bit 系のバイナリを想定しているようです。 64bit の Native コンパイラでコンパイルすると、うまくいかないので注意が必要です。

  1. x86 系の人は "x86 Native..." を使えばよいはず 
  2. VS 2019 じゃなくても大丈夫だと思います 
  3. Visual Studio を使わないビルド方法も提供されています 
?

0 件のコメント: