2020年7月26日日曜日

Mac OS Catalinaに LightGBMをインストールしてpythonで使う

目的

Pythonで機械学習するにあたってLightGBMを使いたかったが、少し詰まったのでメモ

インストール方法

pipでいれる

pip3 install lightgbm

これだけだと、pythonの対話モードを立ち上げると下記のエラーが出る

>>> import lightgbm
Traceback (most recent call last):
  File "", line 1, in 
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/lightgbm/__init__.py", line 8, in 
    from .basic import Booster, Dataset
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/lightgbm/basic.py", line 33, in 
    _LIB = _load_lib()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/lightgbm/basic.py", line 28, in _load_lib
    lib = ctypes.cdll.LoadLibrary(lib_path[0])
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ctypes/__init__.py", line 451, in LoadLibrary
    return self._dlltype(name)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ctypes/__init__.py", line 373, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: dlopen(/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/lightgbm/lib_lightgbm.so, 6): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib
  Referenced from: /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/lightgbm/lib_lightgbm.so
  Reason: image not found

回避するには?

brew install lightgbm

これを実行することで、pythonでimport lightgbmしても問題が無くなる