mac 安装 lightgbm 无法导入(以及解决cmake命令无法编译)

最近在看数据分析,用到 python 的 lightgbm 包,直接用 pip install lightgbm 命令安装后,在 import lightgbm 时总报错,解决了一晚上加一上午,记录下来帮助像我一样的新手小伙伴少踩坑。


一般的包在用上述 pip 命令安装后,就可正常使用,但是 LightGBM 编译依赖 OpenMP,Apple Clang 不支持。给出如下图的错误:
mac 安装 lightgbm 无法导入(以及解决cmake命令无法编译)

官网也有给出在 mac 上安装的方法,但我在执行 cmake .. 命令时,总是无法成功,跳过这个坑花了好久,下面给出成功安装的方法。

系统:macOS Sierra 10.12.6
LightGBM包:https://github.com/Microsoft/...

首先保证你的电脑装了 Homebrew,下面用到 brew 命令。

打开终端后,依次执行命令:

brew install cmake
brew install gcc@7 --without-multilib
git clone --recursive https://github.com/Microsoft/LightGBM ; cd LightGBM
mkdir build ; cd build
cmake -DCMAKE_CXX_COMPILER=g++-7 -DCMAKE_C_COMPILER=gcc-7 ..
make -j

如果安装成功,最后输出结果如下:
mac 安装 lightgbm 无法导入(以及解决cmake命令无法编译)

我的电脑上默认安装到 /usr/local/lib/python2.7/site-packages 文件夹下。

输出上述编译成功的信息后,即可执行下一步,从 build 文件夹返回上一级,执行命令:

cd python-package
pip install lightgbm

如成功安装显示信息:
mac 安装 lightgbm 无法导入(以及解决cmake命令无法编译)

最后还需要进行配置,找到你在上一步安装的 LightGBM 文件夹,拷贝里面的 lib_lightgbm.so 文件到 LightGBM/python-package/lightgbm 目录下。最后将 LightGBM/python-package/lightgbm 文件夹拷贝到你需要用到到 python 文件夹下。

注意是要将 python-package 里的 lightgbm 文件夹放到要用到 lightgbm 的环境下,而不是 LightGBM 整个文件,否则虽然可以 import 成功,但是不能正常用,会报错 LightGBM 对要用的方法无效。我用的是 python3.6 和 jupyter notebook,所以需要分别将 lightgbm 文件夹复制到 /usr/local/lib/python3.6/site-packages 和 anaconda3 对应的文件夹下。

补充:
在执行 pip install lightgbm 命令时,我又遇到了如下所示的问题:
mac 安装 lightgbm 无法导入(以及解决cmake命令无法编译)

解决办法,执行命令:

pip install urllib3==1.21.1

然后即可成功 import :
mac 安装 lightgbm 无法导入(以及解决cmake命令无法编译)

参考链接:
https://blog.csdn.net/Jiaach/...
https://blog.csdn.net/chao201...
还有一些 stackoverflow 的答案,太多了就不放上来了,如果安装过程还有问题,可以去这个网站参考。


如有纰漏,欢迎指正。