またまた、LightGBMのインストールでエラーが出た
事件の発生
LightBGMというライブラリを公式の手順に従ってインストールしようとしたらエラーメッセージが突如現れた。
これのmacOS Apple Clang(9.0 or higher)に従ってインストを行ったらエラーが出た。
どんなエラーがでたか
インストレイションガイドに従って
brew install --HEAD cmake brew install libomp git clone --recursive https://github.com/Microsoft/LightGBM ; cd LightGBM mkdir build ; cd build cmake .. make -j4
ここまでエラーはでなかった。そして
pip install lightgbm
でインストール。いざ、使おうとしたところでエラーが出た。
>>> import lightgbm
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/{ユーザー名}/.pyenv/versions/anaconda3-5.0.0/lib/python3.6/site-packages/lightgbm/__init__.py", line 8, in <module> 中略 OSError: dlopen(/Users/{ユーザー名}/.pyenv/versions/anaconda3-5.0.0/lib/python3.6/site-packages/lightgbm/lib_lightgbm.so, 6): Library not loaded: /usr/local/opt/gcc/lib/gcc/8/libgomp.1.dylib Referenced from: /Users/{ユーザー名}/.pyenv/versions/anaconda3-5.0.0/lib/python3.6/site-packages/lightgbm/lib_lightgbm.so Reason: image not found
どうやって解決したか
アンインストールしてから再度やってみたりいろいろしたがどうしてもimportができなかったので諦めて他の方法でインストールした。
こちらのInstallation GuideのmacOS GCC/G++のやり方に従って、インストールした
cd LightGBM #gitからクローンしたディレクトリに入ってください。 rm -r build # 上記の失敗で作ったbuildを消しておきます。 #ここからほぼ上記のリンク通り brew install cmake brew install gcc export CXX=g++-8 CC=gcc-8 # 上記のリンクとは異なり、ここを8に変えておかないとエラーが出ます。 mkdir build ; cd build cmake .. make -j4
これで無事にインストールでき、importもできるようになった。
関係あるかわかりませんがpyenvやvirtualenvを使っている場合は、事前にactivateしておくと無難かもしれない。
それでも直らない場合
実は、他のサーバーにインストールしようとしたところまた同じエラーが出てしまった。gcc-7を使ってインストールしたため、
Library not loaded: /usr/local/opt/gcc/lib/gcc/8/libgomp.1.dylib
って怒られるのは当たり前...でも管理者権限がないのでgcc-8をインストールすることもできず。
そこでstack overflowをあさっていたら、
pip install --no-binary :all: lightgbm
でインストールするといいよと記述を見つけた。ので、早速ためしたところ無事importできるようになった。これも一回試すといいかもしれない。
余談
前も別のところでエラー履かれたしスムーズにインストールできるようになってほしい aotamasaki.hatenablog.com
追記
condaを用いているなら、かなり楽にインストールできる
conda install -c conda-forge lightgbm