ITエンジニア ノイのブログ

ITエンジニアのノイです。 YouTubeで ITエンジニアのお勉強という学習用の動画を公開しています。チャンネル登録お願いします!https://m.youtube.com/channel/UCBKfJIMVWXd3ReG_FDh31Aw/playlists

M1のMacでLightGBMがインストールできない

M1のMacは環境構築にクセがあります。

LightGBMをローカルで使えるようになるまでの手順を残しておきます。

最初に出てきたエラー

ModuleNotFoundError: No module named 'sklearn' というエラーは、sklearn モジュールがインストールされていないことを示しています。

sklearn をインストールするには、以下のコマンドを使用します:

%pip install scikit-learn

また、lightgbm がインストールされていない場合は、以下のコマンドも実行する必要があります:

%pip install lightgbm

これらのコマンドを実行することで、必要なモジュールをインストールできるはずですが、

OSError: dlopen(/usr/local/lib/python3.10/site-packages/lightgbm/lib/lib_lightgbm.so, 0x0006): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib
  Referenced from: <3AF1EF0C-311C-31EC-BCE3-679F37ABEE16> /usr/local/lib/python3.10/site-packages/lightgbm/lib/lib_lightgbm.so
  Reason: tried: '/usr/local/opt/libomp

このようなエラーがでます。

エラーメッセージから、lightgbmlibomp.dylib というライブラリに依存していることがわかります。このライブラリは、OpenMPのサポートを提供するもので、macOSの場合、Homebrewを使用してインストールすることができます。

以下の手順で解決できる可能性があります:

1.まず、Homebrewがインストールされているか確認してください。もしインストールされていない場合は、公式サイトの指示に従ってインストールしてください。

2.Homebrewがインストールされている場合、ターミナルで以下のコマンドを実行して、libomp をインストールします:

brew install libomp

3.libomp のインストールが完了したら、Python環境に戻り、lightgbm を再インストールしてみてください:

%pip install lightgbm --force-reinstall

これにより、lightgbm が必要とする依存関係が正しくリンクされ、エラーが解消される可能性があります。

Xcodeのライセンス

% brew install libomp しかし、このコマンドを実行してもエラーが続きます。

Error: You have not agreed to the Xcode license. Please resolve this by running:
  sudo xcodebuild -license accept

このエラーメッセージは、Xcodeのライセンスにまだ同意していないことを示しています。macOSでの開発ツールやコンパイラを使用するためには、Xcodeのライセンスに同意する必要があります。

以下の手順でライセンスに同意することができます:

1.ターミナルを開き、以下のコマンドを実行してXcodeのライセンスに同意します:

sudo xcodebuild -license accept

2.上記のコマンドを実行した後、再度以下のコマンドを実行してlibompをインストールします:

brew install libomp

これでlibompのインストールが成功するはずです。

brew install libomp を実行し、Xcodeのライセンスにも同意したにも関わらず、このエラーが発生している場合、以下の手順を試してみてください:

1.libomp が正しくインストールされているか確認します:

brew list | grep libomp

このコマンドで libomp が表示されれば、正しくインストールされています。

2.インストールされている場所を確認します:

brew --prefix libomp

このコマンドで表示されるパスが /usr/local/opt/libomp であることを確認してください。

3.libomp.dylib が正しい場所に存在するか確認します:

ls /usr/local/opt/libomp/lib/libomp.dylib

このコマンドでファイルが表示されれば、正しく存在しています。

4.もし上記の手順で問題がない場合、lightgbm のインストールを再試行してみてください:

%pip install lightgbm --force-reinstall

5.それでも問題が解決しない場合、DYLD_LIBRARY_PATH 環境変数libomp.dylib のパスを追加してみてください。これは、動的ライブラリの検索パスを指定する環境変数です:

export DYLD_LIBRARY_PATH=/usr/local/opt/libomp/lib:$DYLD_LIBRARY_PATH

このコマンドを実行した後、PythonスクリプトやJupyterノートブックを再起動して、再度 lightgbm をインポートしてみてください。

注意: DYLD_LIBRARY_PATH の変更は一時的なものです。恒久的に変更するには、シェルの設定ファイル(例:.bashrc.zshrc など)に上記の export コマンドを追加する必要があります。

パスが間違っている

% brew --prefix libomp

/opt/homebrew/opt/libomp

パスを確認するとこのような出力でした。

出力から、libomp/opt/homebrew/opt/libomp にインストールされていることがわかります。これは、Apple Silicon (M1チップなど) を搭載したMacでHomebrewを使用する場合のデフォルトのインストールパスです。

この情報を元に、lightgbmlibomp.dylib を正しく参照できるようにするための手順を以下に示します:

1.DYLD_LIBRARY_PATH 環境変数libomp.dylib のパスを追加します:

export DYLD_LIBRARY_PATH=/opt/homebrew/opt/libomp/lib:$DYLD_LIBRARY_PATH

2.このコマンドを実行した後、PythonスクリプトやJupyterノートブックを再起動して、再度 lightgbm をインポートしてみてください。

3.それでも問題が解決しない場合、lightgbm のインストールを再試行してみてください:

%pip install lightgbm --force-reinstall

これでもlibomp のパスが /opt/homebrew/opt/libomp であるので、lightgbm がこのパスを正しく参照していない可能性が考えられます。

以下の手順で、lightgbm のインストール時に libomp の正しいパスを指定してみましょう:

1.lightgbm のインストールを再試行しますが、今回は OpenMP のインクルードパスとライブラリパスを明示的に指定します:

%pip uninstall lightgbm
%pip install lightgbm --install-option=--openmp-include-dir=/opt/homebrew/opt/libomp/include --install-option=--openmp-lib-dir=/opt/homebrew/opt/libomp/lib

2.インストールが完了したら、再度PythonスクリプトやJupyterノートブックを再起動して、lightgbm をインポートしてみてください。

この手順で、lightgbm のインストール時に libomp の正しいパスを指定することで、問題が解決する可能性があります。

pip install lightgbmがうまくいかない

--install-optionは非推奨となっている場合lightgbmのインストールに関する問題を解決するため、以下の手順を試してみてください:

1.環境変数を設定して、libompのパスを指定します。

import os
os.environ['LDFLAGS'] = '-L/opt/homebrew/opt/libomp/lib'
os.environ['CFLAGS'] = '-I/opt/homebrew/opt/libomp/include'

2.上記の環境変数を設定した後、lightgbmをインストールします。

%pip install lightgbm

この手順で、lightgbmのインストール時にlibompの正しいパスが指定され、問題が解決する可能性があります。

Installing collected packages: lightgbm
Successfully installed lightgbm-4.1.0
Note: you may need to restart the kernel to use updated packages.

これでインストール成功です!

youtu.be

深層学習教科書 ディープラーニング G検定(ジェネラリスト)公式テキスト 第2版 (EXAMPRESS) [ 一般社団法人日本ディープラーニング協会 ]

価格:3,080円
(2023/8/16 20:42時点)
感想(5件)