一開始直接用pip install lightgbm
報錯:
OSError: dlopen(/opt/anaconda3/lib/python3.7/site-packages/lightgbm/lib_lightgbm.so, 6): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib
Referenced from: /opt/anaconda3/lib/python3.7/site-packages/lightgbm/lib_lightgbm.so
Reason: image not found
看了一些網絡回答,原因:主要是編譯器的版本不一致(mac默認是gcc-8,pip安裝的包則是用gcc-7編譯的)
只要通過 brew install libomp 安裝一個 libomp 就可以正常使用 lightgbm 了。看這里
還有一個解答,看這里
按照上面和下面的文檔下載了一通,運行時還是不行,原來For Mac OS X users, gcc with OpenMP support must be installed first. 我之前在安裝gcc或openmp之前先用pip install lightgbm了,所以一直還是不行,看這里
然后我看了一下我的gcc,原來都沒有安裝,這個需要自己安裝的。安裝這個之前,還要先安裝一下Homebrew。
什么是homebrew?簡單說就是一款mac os軟件包管理工具。
什么是CMake?是一個跨平台的安裝、編譯工具。
什么是Apple Clang?是一個c語言、c++的輕量級編譯器。
什么是Xcode?是運行在mac os上的集成開發環境(IDE)。里面包含了Apple Clang。
什么是gcc?GNU Compiler Collection,全稱GNU編譯器套件,是多種語言的編譯器。
根據lightgbm官網安裝教程,有三種安裝方法:
1.用Homebrew安裝
brew install lightgbm
2.git模式安裝
brew install cmake
brew install libomp
git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM mkdir build ; cd build # For Mojave or newer (>=10.14) cmake \ -DOpenMP_C_FLAGS="-Xpreprocessor -fopenmp -I$(brew --prefix libomp)/include" \ -DOpenMP_C_LIB_NAMES="omp" \ -DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp -I$(brew --prefix libomp)/include" \ -DOpenMP_CXX_LIB_NAMES="omp" \ -DOpenMP_omp_LIBRARY=$(brew --prefix libomp)/lib/libomp.dylib \ .. # For High Sierra or earlier (<= 10.13) cmake .. make -j4
3.gcc模式安裝
brew install cmake
brew install gcc
git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM export CXX=g++-7 CC=gcc-7 # replace "7" with version of gcc installed on your machine mkdir build ; cd build cmake .. make -j4