仮想インスタンスで機械学習の環境を構築していたら、lightgbmのインストールでこけたのでメモ。
環境はDebian/Linux。Python3系。
2022/01/16間違っていた記載があったので、いろいろ修正。
#初めにやったこと
python3 -m pip install lightgbm
前に環境構築したときはこの↑のpip installでいけたような記憶があった(そこまでややこしくはなかったような記憶があった)が、このコマンドでは駄目だった。(※正確には時間がかかりすぎていた。経験上、時間がかかりすぎるのはどこかが間違っていることが多い。)
もう一つコマンドを試してみる↓。
sudo apt-get install python3-lightgbm
が、"Unable to locate package python3-lightgbm"のエラーを吐く。
いつもの手法が通用しないので、改めてどこで問題が起こっているのか考察する。
1.一応、lightgbmはpipでインストールできるはずである。(ネットにも情報が落ちている)
2.さきほどの”python3 -m pip install lightgbm”のコマンドを打った時、ログによるとscikit-learnの環境構築をするところで止まっていたらしかった。
3.まずはscikit-learnをインストールしてみれば、状況が改善するかもしれない。
という訳で、scikit-learnをインストールしてみた。一応その前にlightgbmがscikit-learnのどのバージョンをインストールしようとしているのか確認しておいた(実はlightgbmではそのバージョンは使えませんでした、となったら悲しいので)。
ログを見たところ、lightgbmはscikit-learn1.0.2をインストールしようとしていたらしいので、現在の最新版を入手しようとしていたことが分かった。
なので、scikit-learn公式のDocumentに従ってインストールコマンドを打ってみる。
sudo apt-get install python3-sklearn python3-sklearn-lib python3-sklearn-doc
Debian/Ubuntuでは↑のコマンドでscikit-learnを入手するらしい。
するとpython3-sklearn-docが"Unable to locate package"のエラーを吐いてしまった。
なので、今度はpython3-sklearn-docだけなくして、コマンドを再実行すれば問題なくsklearnをインストールできた。
その後、もう一度lightgbmをインストールしてみた。
すると、サクッと無事にlightgbmをインストールすることに成功。
ううん、どうやらscikit-learnが悪さをしていたようだね...。
同様の問題に当たったら、まずはscikit-learnをインストールできていないかどうかを確かめるとよいかもしれません。
Cmakeとsetup.pyを利用したインストール(非推奨)
基本的にpython3パッケージはsetup.pyコマンドを使わずにインストールしたほうが面倒がないので、以下からの手順は非推奨。
どうしてもpipでインストールできない場合に参考にしてほしい。
まずはLightGBMインストールガイドを読む。
これによると、LinuxではまずCMakeをインストールすることから始めるらしい。
#CMakeのインストール
まずwgetをaptで入手する。まずいつものupdateから。
sudo apt update
sudo apt install wget
次に、CMakeのサイトから最新版を入手する。
現在の最新版は3.22.1なので、それを入手する。
wget https://github.com/Kitware/CMake/releases/download/v3.22.1/cmake-3.22.1.tar.gz
tar -xvzf cmake-3.22.1.tar.gz
cd cmake-3.22.1
sudo ./bootstrap
sudo make
sudo make install
これでOK…かと思いきや、
「Could not find OpenSSL. Install an OpenSSL development package or configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL.」
というエラーがsudo ./bootstrap中に起こる。これについて軽くググってみたところ、この↓のコマンドを実行するといいらしい。エラーが特に起きなかった人はここを飛ばしてもいい。
sudo apt install libssl-dev
一応、インストールできているか確かめる。
cmake --version
バージョンが表示されていたらOK。
ここまで来たら、あとはようやくlightgbmをインストールする。
lightgbm のインストール
git clone --recursive https://github.com/microsoft/LightGBM
cd LightGBM
mkdir build
cd build
cmake ..
make -j4
このコードは公式の手順通り。なお最後の「make -j4」の「-j4」は並列処理のためのコマンドであるが、この後ろにつく数字はCPUの数×2倍にすることで最適に処理を高速化できるらしい(なおこの数字が大きすぎると逆にCPUのキャパを越える)。
それから、公式のドキュメントには載っていないが、lightgbmを使用するにはさらに以下のコマンドを実行する。
cd ../python-package
python3 setup.py install
最後に確認。
$ python3
---import lightgbm
無事にimportできたら完了。
参考リンク