mac上python安装xgboost

首先奉上xgboost官方文档python安装详细步骤地址,本文以此为基础。

1. 为什么Python直接使用pip3安装会报错?

1.1 使用pip3安装xgboost

如下,直接使用装包工具pip3 install xgboost在python中安装xgboost

pip3 install xgboost
1.2 报错

运行包含训练xgboost模型的代码,报错如下图。
在这里插入图片描述
放大报错日志部分,报错主要在于libxgboost.dylib包load失败,下边分析了2条可能的原因:

  1. 未安装OpenMP
    OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C、C++和Fortran。OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的并行程序设计

  2. Python版本和OS系统版本不一致

xgboost.core.XGBoostError: XGBoost Library (libxgboost.dylib) could not be loaded.
Likely causes:
  * OpenMP runtime is not installed (vcomp140.dll or libgomp-1.dll for Windows, libgomp.so for UNIX-like OSes)
  * You are running 32-bit Python on a 64-bit OS
1.3 报错原因分析
  • Xgboost模型本身支持多线程运行,即用多个cpu线程进行训练;

  • 但是,默认的apple clang编译器不支持openmp,因此使用默认编译器将禁用多线程。

1.4 解决方案

安装openMP来支持xgboost多线程运行。

2. 安装基于GCC的openMP

2.1 安装最新版本GCC

mac在安装GCC之前,首先检查是否安装homebrew,若没有则先安装homebrew。

# 1. 检查是否安装了homebrew
brew list # 列出brew已安装的包,若未列出,则未安装homebrew

# 安装homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"  
# 2. 使用homebrew安装最高版本的GCC
# 官方文档要求只有最新的gcc版本才能使xgboost支持多线程

brew install gcc@8
2.2 源代码安装xgboost
  1. 下载xgboost源码
git clone --recursive https://github.com/dmlc/xgboost
  1. build xgboost
# 2.1 非常重要的一步!将路径切换到xgboost文件夹下,否则cmake因路径原因报错
cd xgboost 

# 2.2 在xgboost文件夹下新建build文件夹
mkdir build 

# 2.3 切换到build文件夹下
cd build 

# 2.4 调用CMake,确保选择了homebrew安装的GCC版本。
CC=gcc-8 CXX=g++-8 cmake .. 

# 2.5 build XGBOOST
make -j4 
  1. 安装xgboost
# 这里的python-package为刚刚xgboost的下载路径
cd python-package;  sudo python3 setup.py install
cd /usr/local/bin/xgboost/python-package;

3. 验证xgboost是否已安装

在终端下输入 Python3,导入xgboost,无报错!安装成功!

完结撒花!

  • 12
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值