Mac上下载xgboost

这会有事了,感觉有必要记录一下。

最近想搞搞kaggle的入门级比赛,参考他人的kernel用到了xgboost,但是安装时遇到了一些坑,特别是官网的安装教程…真的让人吐血,根本不能解决我要安装的欲望。以下是我参考了一些文章并且成功安装的经验记录。

安装过程

先用homebrew下载相关的依赖:

1
brew install gcc --without-multilib

加上--without-multilib目的是开启默认不开启支持多线程的插件。

然后git下载在GitHub上的xgboost:

1
git clone --recursive https://github.com/dmlc/xgboost

最好下载在根目录。

下载完成之后:

1
cd xgboost

修改相关的配置文件:

1
vi config.mk

实际上这个文件有好多个,我最终都修改成一致的了…如下图

修改内容为,改成用homebrew下载的gcc版本目录地址:

export CC = /usr/local/Cellar/gcc/8.2.0/bin/gcc-8
export CXX = /usr/local/Cellar/gcc/8.2.0/bin/g++-8
export MPICXX = /usr/local/Cellar/gcc/8.2.0/bin/mpicxx

如图:

之后使用命令行:

1
2
cp make/config.mk ./config.mk
make -j4

-j4是开启4个线程的意思。

之后就是编译成包的过程了:

1
2
cd python-package
python setup.py install

我用的是anaconda的python版本。

验证

如图:

这样就大功告成了。

期间遇到过的问题

问题一:

XGBoostLibraryNotFound: Cannot find XGBoost Libarary in the candidate path, did you install compilers and run build.sh in root path?
List of candidates:
/home/dmlc/anaconda/lib/python3.6/site-packages/xgboost-0.4-py3.6.egg/xgboost/libxgboostwrapper.so
/home/dmlc/anaconda/lib/python3.6/site-packages/xgboost-0.4-py3.6.egg/xgboost/../../wrapper/libxgboostwrapper.so
/home/dmlc/anaconda/lib/python3.6/site-packages/xgboost-0.4-py3.6.egg/xgboost/./wrapper/libxgboostwrapper.so

此类问题,可能是git clone --recursive https://github.com/dmlc/xgboost下载执行未完全。

问题二

使用命令行make -j4时出现:

clang: error: unsupported option '-fopenmp'

如图:

解决方案:

export CC = /usr/local/Cellar/gcc/8.2.0/bin/gcc-8
export CXX = /usr/local/Cellar/gcc/8.2.0/bin/g++-8
export MPICXX = /usr/local/Cellar/gcc/8.2.0/bin/mpicxx

这只是未能识别相关插件的问题,修改文件config.mk相关的部分如上即可。

在此参考了:https://stackoverflow.com/questions/36211018/clang-error-errorunsupported-option-fopenmp-on-mac-osx-el-capitan-buildin

参考链接

---------------本文终---------------

文章作者:刘俊

最后更新:2019年01月02日 - 14:01

许可协议: 转载请保留原文链接及作者。