2019/06/08

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

@Windows 10 Pro 64bit

[LZO](http://www.oberhumer.com/opensource/lzo/) というアーカイブ系ライブラリを Python でラップしてくれるパッケージに
[python-lzo](https://pypi.org/project/python-lzo/) があります。

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

```shell
`gutter: false;
> 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 "", line 1, in 
      File "C:\Users\yusuk\AppData\Local\Temp\pip-install-jzhjob69\python-lzo\setup.py", line 46, in 
        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](https://github.com/jd-boyd/python-lzo/issues/5)



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

### ソースコードをダウンロード
[Download](http://www.oberhumer.com/opensource/lzo/#download) よりソースコードをダウンロードします。
今回は lzo-2.10.tar.gz をダウンロードしてきました。

### 展開 先のファイルを展開します。 なお、以後のコマンドライン操作は "x64_x86 Cross Tools Command Prompt for VS 2019" 上で行っていますx86 系の人は "x86 Native..." を使えばよいはず, VS 2019 じゃなくても大丈夫だと思います, Visual Studio を使わないビルド方法も提供されています
ダウンロードしたフォルダに移動して、展開します。 ```shell `gutter: false; > cd %HOMEPATH%\Downloads > tar xzf lzo-2.10.tar.gz ``` 現在では Windows で `tar` が使えるので、これを使わない手はないと思いますが、もちろん [7-Zip](https://sevenzip.osdn.jp/) 等その他のツールを使っても大丈夫なはずです。 > 参考 > > [Windows その14 - Windows上でcurlとtarコマンドが利用可能に - kledgeb](https://kledgeb.blogspot.com/2017/12/windows-14-windowscurltar.html) ### ビルド Linux 以外のビルド方法は "B\00README.TXT" に書かれています。 基本的には対象のバッチファイルを実行すればよいだけです。 ```shell `gutter: false; > cd lzo-2.10 > .\B\win32\vc.bat ... // // Building LZO was successful. All done. ``` ### pip install 環境変数 `LZO_DIR` に先ほどビルドを実行したフォルダを指定します。 あとは、仮想環境なりユーザー環境なりに `pip install` で完了です。 ```shell > 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 コンパイラでコンパイルすると、うまくいかないので注意が必要です。

0 件のコメント: