3

この記事は最終更新日から1年以上が経過しています。

【備忘録】LightGBMインポートでエラー

最終更新日 投稿日 2021年10月05日

結論

LightGBMをインストールする際はとりあえずpipではなく、ちゃんとLightGBMのリポジトリに記載されている手順に従うこと!

エラー内容

環境はMacOS。LightGBMを使いたかったのでpipでインストール。インストールの際は特にエラーはなかった。

pip install lightgbm

しかしimportしようとするとOSError (OSError: dlopen ~ Library not loaded ~ Reason: image not found)が起こってしまった。

#[IN]:
import lightgbm as lgb

エラーは以下のようなかんじ。

dlopen(/Users/*site-packages/lightgbm/lib_lightgbm.so, 6): Library not loaded: */libomp/lib/libomp.dylib Referenced from: /Users/*/opt/anaconda3/lib/python3.6/site-packages/lightgbm/lib_lightgbm.so Reason: image not found

このエラーをネットで検索するとそこそこヒットするため多くの人が遭遇している可能性あり。

解決方法

3ステップで解決。

  1. libomp をインストール
  2. LightGBMをアンインストール
  3. LightGBMを再びインストール

1. libompをインストール

brew install libomp

LightGBMのリポジトリに以下の内容が記載されていた。

For macOS (we provide wheels for 3 newest macOS versions) users:

Starting from version 2.2.1, the library file in distribution wheels is built by the Apple Clang (Xcode_8.3.3 for versions 2.2.1 - 2.3.1, and Xcode_9.4.1 from version 2.3.2) compiler. This means that you don't need to install the gcc compiler anymore. Instead of that you need to install the OpenMP library, which is required for running LightGBM on the system with the Apple Clang compiler. You can install the OpenMP library by the following command: brew install libomp.
For version smaller than 2.2.1 and not smaller than 2.1.2, gcc-8 with OpenMP support must be installed first. Refer to Installation Guide for installation of gcc-8 with OpenMP support.
For version smaller than 2.1.2, gcc-7 with OpenMP is required.

どうやらLightGBMをMacで実行するためにはOpenMPライブラリをインストールする必要があるらしい。ということで書かれている通りにlibompをhomebrewでインストール。

2. 一旦LightGBMをpipでアンインストール

LightGBMをアンインストールします。

pip uninstall lightgbm

3. 再びLightGBMをインストール

libompがインストールされている状態でLightGBMをインストールします。これでエラーは解消しました!

pip uninstall lightgbm

参考

https://cocoinit23.com/mac-lightgbm-image-not-found/
https://aotamasaki.hatenablog.com/entry/2018/08/05/215612

新規登録して、もっと便利にQiitaを使ってみよう

  1. あなたにマッチした記事をお届けします
  2. 便利な情報をあとで効率的に読み返せます
ログインすると使える機能について
ryo_hagi
@ryo_hagi(Ryo)
大学院生です

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
新規登録
すでにアカウントを持っている方はログイン
記事投稿キャンペーン開催中
記事投稿キャンペーン 「エンジニア×非エンジニアのコミュニケーション」
~
記事投稿キャンペーン 「プロダクトマネジメント」
~
3

Qiitaにログインして、便利な機能を使ってみませんか?

あなたにマッチした記事をお届けします

便利な情報をあとから読み返せます