ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Mac Python library LightGBM 설치(lightgbm error)
    Mac OS 2020. 1. 1. 18:33

    이번 포스팅에서는 현재 python에서 머신러닝 모델로 가장 많이 사용하고 있는 Boosting기반 모델 중 LightGBM library를 설치하면서 맞닿았던 문제와 해결방법에 대해서 포스팅하도록 하겠습니다.

     

    참고로 이 글은 에러에 부딪혔을 때 아래의 git issue에서 참고했습니다.

     

    LightGBM and gcc 8 in MacOS: `Library not loaded: /usr/local/opt/gcc/lib/gcc/7/libgomp.1.dylib` · Issue #1369 · microsoft/LightG

    For Mac Users Version 10.13.4 Python 3.6.5 The 2nd of May gcc-8 was released, which is a major released. Therefore, if, since then, you run brew update brew upgrade gcc-8 version will be installed:...

    github.com

     

    먼저 터미널을 통해서 anaconda/bin 폴더에서 pip로 lightgbm라이브러리를 설치해보도록 하겠습니다.

     

    shift+space bar로 spotlight를 켜시고 terminal을 입력하여 터미널을 동작시킵니다.

    /Users/(user_name)/opt/anaconda3/bin/pip install lightgbm
    -> Successfully installed lightgbm-2.3.1
    

    이와 같이 lightgbm을 설치하면 성공적으로 설치가 완료되었다는 메세지가 노출됩니다.

     

    그래서 다시 python으로 돌아와서

     

    import lightgbm as lgb
    

    라는 코드를 입력하면 아래와 같은 에러 메세지가 print 됩니다.

    Traceback (most recent call last):
      File "", line 1, in 
      File "/Users/fakenerd/.envs/env-with-lightgbm/lib/python3.6/site-packages/lightgbm/__init__.py", line 8, in 
        from .basic import Booster, Dataset
      File "/Users/fakenerd/.envs/env-with-lightgbm/lib/python3.6/site-packages/lightgbm/basic.py", line 32, in 
        _LIB = _load_lib()
      File "/Users/fakenerd/.envs/env-with-lightgbm/lib/python3.6/site-packages/lightgbm/basic.py", line 27, in _load_lib
        lib = ctypes.cdll.LoadLibrary(lib_path[0])
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ctypes/__init__.py", line 426, in LoadLibrary
        return self._dlltype(name)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ctypes/__init__.py", line 348, in __init__
        self._handle = _dlopen(self._name, mode)
    OSError: dlopen(/Users/()/.envs/env-with-lightgbm/lib/python3.6/site-packages/lightgbm/lib_lightgbm.so, 6): Library not loaded: /usr/local/opt/gcc/lib/gcc/7/libgomp.1.dylib
      Referenced from: /Users/()/.envs/env-with-lightgbm/lib/python3.6/site-packages/lightgbm/lib_lightgbm.so
      Reason: image not found

    위의 휘황찬란한 에러 메세지는 지금 보지 마시고 명확한 이유에 대해서 print해준 메세지를 살펴보면 Reason: image not found라는 메세지가 있습니다. 이제 구글링을 해봅시다. 오우...맥os를 사용하는 유저들이 같은 이슈를 상당히 많이 겪은 것을 살펴볼 수 있었습니다. 그 중 위에서도 언급했던 git issue를 살펴보았습니다.

     

    에러의 해결방법은 다음과 같습니다.

    크게 gcc version을 문제로 접근하여 기존의 gcc버전이 아닌 version8로 다시 설치하고 lightgbm을 git clone하여 정상적으로 작동할 수 있도로 설치하는 것입니다. 그래서 지시하는 방법대로 따라가 보았습니다.(home brew를 설치했다고 가정하겠습니다.)

     

    brew update
    brew upgrade
    
    brew install gcc@8

    설치가 완료되었다면 아래의 코드를 진행합니다.

     

    git clone --recursive https://github.com/Microsoft/LightGBM
    cd LightGBM
    
    export CXX=g++-8 CC=gcc-8
    mkdir build
    
    cd build
    
    cmake ..
    make -j4

     

    하지만 저는 cmake ..에서 cmake가 없다는 메세지를 받았습니다.

     

    zsh: command not found: cmake
    

    분명히 다른 분들은 해당 방법을 통해서 오류를 해결했다는 글들이 있었는데 저는 저 부분에서 막힌 것입니다.

     

    그래서 다른 방법을 찾아봐야 했습니다. 그 방법으로 직관적인 생각으로 cmake가 없으니 cmake를 설치해야 하지 않나? 라는 생각을 하게 되어 pip에서 cmake를 설치하고 다시 lightgbm을 설치해봤습니다.

     

    /Users/(user_name)/opt/anaconda3/bin/pip install cmake
    -> Successfully installed cmake-3.15.3
    
    /Users/(user_name)/opt/anaconda3/bin/pip install lightgbm
    -> Successfully installed lightgbm-2.3.1
    

     

    다시 python으로 돌아오니 띠용...바로 lightgbm이 정상적으로 모듈 임포트가 되었습니다. 순간적으로 잘못 설치된것인가 싶어서 확인해봤는데 

    정상적으로 설치가 완료되었습니다. 하하하...

     

    무엇인가 에러메세지가 나왔을 때 그것에 대해서 해결할 수 있는 방법을 찾고 해결이 되었을 때 짜릿함은 말로 설명할 수 없지만 이번 에러를 해결하는 과정을 통해서 무언가 허탈함을 느꼈습니다...

     

    해당 오류를 해결하고자 하시는 분들은 먼저 git issue에서 친절하게 설명해주시는 분의 과정을 차례대로 밟아보다가 해결이 안될시에 제가 했던 방식으로 해보시길 추천드립니다! 일단 에러를 해결하는 과정은 해결이 되든 안되든 경험으로 축적될 수 있으니까요!!


    'Mac OS' 카테고리의 다른 글

    누구나 쉽게 할 수 있는 git 연동  (0) 2020.02.23
    Mac OS 사용기  (0) 2020.01.01

    댓글

Designed by Tistory.