一开始直接用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