安装XGBoost和LightGBM出坑记(MacOS)

案情经过

这两天差点儿被XGBoost和LightGBM(其实是卡在Homebrew的安装)搞疯哈哈哈。因为要用XGBoost和LightGBM两个机器学习算法的包,所以尝试在jupyter notebook进行安装。

在一个月不黑风不高的中午,我一如既往噼里啪啦面带微笑游刃有余地打下了如下两行安装指令:

pip install xgboost
pip install lightgbm

然后轻松得到了安装完成可能需要重启kernal的指示(如下图)
image.png
轻点鼠标等待重启之后,我施施然打下了两行导入包的指令:

from lightgbm import LGBMClassifier
from xgboost import XGBClassifier

结果猝不及防地报错了:

OSError: dlopen(/Users/user/anaconda3/lib/python3.7/site-packages/lightgbm/lib_lightgbm.so, 6): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib
Referenced from: /Users/user/anaconda3/lib/python3.7/site-packages/lightgbm/lib_lightgbm.so
Reason: image not found

简单查了一下发现大部分的说法是因为没有安装gcc编译器或者是版本没有更新,但是我的报错上面并没有提到gcc。我抱着迷惑的心情又去查了半天,发现高于2.2.1版本的包已经不需要安装gcc了,但是需要安装OpenMP库,从而让LightGBM包使用Apple Clang(Xcode_8.3.3)进行编译。那这个库怎么安装嘞?很简单, 只需要在终端输入短短三个单词的代码:

brew install libomp

可是brew是个啥?我试探性地悄咪咪地在终端输入了一下,害,果然不行。我乖乖去查,发现需要下载Homebrew。久仰大名啊原来是它!入股绝对不亏,我果断进入homebrew官网把下载地址复制粘贴在终端里,轻点运行,简直行云流水一气呵成。

我端坐在电脑面前,微笑地啃着薯泥面包盯着屏幕。没成想,…a few moments later…屏幕赫然出现:

curl: (7) Failed to connect to raw.githubusercontent.com port 443: Operation timed out

咋回事儿呢?我定睛一看,嗷原来是timed out, 敢情网不好呗,肯定是墙墙不太稳,重新连一下就行。我熟练地断网联网重启墙墙又试了一遍,还是不行……

这可咋办?果断Google,原来是DNS污染的问题,只需要拥有一个switchhosts就好(参考资料1)。下载好之后在这个长得像文本编辑器的页面新建文件在里面复制输入如下几个地址:

199.232.68.133 raw.githubusercontent.com
199.232.68.133 user-images.githubusercontent.com
199.232.68.133 avatars2.githubusercontent.com
199.232.68.133 avatars1.githubusercontent.com

并点击host文档旁边的开关进行激活即可。

然后我信心满满地重新运行,成功开始运行了!但是我的喜悦没有保持多久,又有一个问题:

error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

好像还是网的问题……按照大家的方法我反复开关墙墙,关掉所有proxy,开着switchhost和不开都试了……甚至试了下载brewinstall.sh文件到本地进行安装,都不行……

直到某个时刻,屏幕开始滚动tag的名字,在我以为要成功的时候,它来了。bug它戴着崭新的面具走来了:

Failed during git fetch --force --tags origin

我耐着性子又查,发现应该是之前安装到一半没有完成的包的原因……所以只好:

rm -R usr/local/Homebrew

删除完成,一身轻松,终于又回到了第一个bug!我裂开了@@

终于,在尝试了无数个办法之后,我发现了中科大镜像这个好东西!(参考资料2,感谢阿畅救我于水火~)只是原文中的链接因为Homebrew官方废弃了Ruby安装脚本已经失效了,我把更新过安装命令的po在这里:

/bin/bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install.sh)"

之后只要输入密码就可以啦!还有贴心的安装提示。

记得一定要一直开着墙墙,没有墙墙我试过也是不行的……

终于搞定了Homebrew!剩下就是!

brew install libomp

之后重新安装,就完美解决了!就此,历时一天一夜,我终于爬出这个巨坑,成功上岸。顺便一提,我的电脑系统是MacOS Mojave。希望对遇到同样问题的小可爱有帮助。

总结一下

1.安装Homebrew

在终端输入如下语句

/bin/bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install.sh)"

2.安装libomp

在终端输入

brew install libomp

##3.安装xgboost和lightgbm包并调用

pip install xgboost
pip install lightgbm
from lightgbm import LGBMClassifier
from xgboost import XGBClassifier

大功告成!

参考资料:
1.https://blog.csdn.net/i_CodeBoy/article/details/107386756
2.https://www.jianshu.com/p/c8d998903a6a

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值