这会有事了,感觉有必要记录一下。
最近想搞搞kaggle的入门级比赛,参考他人的kernel用到了xgboost,但是安装时遇到了一些坑,特别是官网的安装教程…真的让人吐血,根本不能解决我要安装的欲望。以下是我参考了一些文章并且成功安装的经验记录。
安装过程
先用homebrew下载相关的依赖:
|
|
加上
--without-multilib
目的是开启默认不开启支持多线程的插件。
然后git下载在GitHub上的xgboost:
|
|
最好下载在根目录。
下载完成之后:
|
|
修改相关的配置文件:
|
|
实际上这个文件有好多个,我最终都修改成一致的了…如下图
修改内容为,改成用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
如图:
之后使用命令行:
|
|
-j4
是开启4个线程的意思。
之后就是编译成包的过程了:
|
|
我用的是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
相关的部分如上即可。