如何在MacOS上使用Python安装XGBoost?

22

我是一名新手,正在学习Python。有人可以帮助我吗-如何在Python中安装xgboost。我正在使用Mac 10.11。我在网上阅读并执行了下面提到的步骤,但不知道接下来该怎么做:

pip install xgboost - 

3
您能解释一下您确切的问题是什么吗?例如,如果出现任何错误,请在此记录它们。 - Timotheus.Kampik
我运行了pip install xgboost,但是它给了我一个错误:Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/hj/kdbpyx0s6y3flcbtj_j71gmc0000gn/T/pip-build-br5u893/xgboost/_。你能否提供一步一步的指导,告诉我如何从头开始在Python中安装xgboost?谢谢(: - aman sanduja
你试过我的答案了吗?能验证一下吗? - Adrien Renaud
10个回答

39

如果你想使用多线程,就稍微复杂一些。需要说明的是,我使用的是OS X 10.10(Yosemite)的Mac电脑。我花了一些时间去解决各种问题,但现在在我的Anaconda(Py36)环境中运行良好。

使用多线程需要首先进行以下操作(如果还没有安装homebrew的话):

brew install gcc --without-multilib

如果您安装了其他版本,可能会收到有关取消链接目录或删除它们的警告,请遵循警告/说明。

接下来从Github获取xgboost文件。我将其下载到Anaconda/pkgs目录中。

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

下面的步骤与xgboost网站上的文档不同,我从许多来源和实验中拼凑在一起。 问题在于make文件中的一些关键行被注释掉并且没有完全指定。

下一系列步骤不同于xgboost网站上的文档,我从很多来源和实验中搭配出来的。问题在于make文件中的一些关键行被注释掉了并且没有完全指定。

cd xgboost; cp make/config.mk ./config.mk

现在,使用您喜欢的编辑器(我使用的是vi),并进入从/make复制到/xgboost的文件

vi config.mk

取消文件顶部附近的注释行:

export CC = gcc

export CXX = g++

将它们更改为以下内容:

export CC = gcc-6

export CXX = g++-6

取消注释这些行可能会解决问题。对我来说并没有起作用,我需要在这两行中都加上-6。保存文件。

另外,对文件xgboost/Makefile进行更改;更改以下行:

export CC = $(if $(shell which clang), clang, gcc)
...
...
export CXX = $(if $(shell which clang++), clang++, g++)

以下是需要翻译的内容:

export CC = $(if $(shell which clang), clang, gcc-6)
...
...
export CXX = $(if $(shell which clang++), clang++, g++-6)

这次编辑我使用了vi。

保存文件后,现在您需要运行清理步骤,因为您已更改了Makefile。

make clean_all && make -j4

这样做可以干净地配置并构建该库。你仍然需要安装它。

cd python-package; python setup.py install

现在重新启动Python/Anaconda,你就可以导入这个库了。


非常感谢您的帮助,我在这个问题上一整天都很困扰,直到找到了您详细的解释。再次感谢! :) - George
嗨,https://github.com/dmlc/xgboost/issues/1501,这是另一种解决方案。 - xu2mao
7
我在运行OSX Sierra,看起来brew现在正在安装gcc 7。我不得不更改gcc-7和g++-7。 - BenDundee
这些步骤在7 BenDundee上有效吗?我的一位同事尝试了使用7,似乎进展顺利。 - Bryan Butler
感谢这个答案,我终于可以在High Sierra上安装它并使用gcc-8了。 - heisen
显示剩余5条评论

7
如果您已经安装了Conda,以下是我使用的方法:
在终端中输入以下命令:
conda install -c conda-forge xgboost

在Mac CatalinaOS(10.15.4)上 - 这个工作得很好!谢谢。 - Pranzell

6
对于初学者在Mac上学习Python和机器学习,我强烈建议首先安装Anaconda(安装文档)。
Anaconda是Python和R编程语言的免费开源发行版,用于大规模数据处理、预测分析和科学计算,旨在简化软件包管理和部署。
如果您安装了适用于Python 2.7的Anaconda,则应该可以轻松安装XGBoost:
conda install -c aterrel xgboost=0.4.0

如果您已经安装了Anaconda并且pip XGBoost安装失败,您可以尝试以下操作:
conda remove xgboost
conda install -c aterrel xgboost=0.4.0

2
amans-air-2:~ amansanduja$ conda install -c aterrel xgboost=0.4.0使用“conda info <package>”查看每个软件包的依赖项。_我在终端上运行了粗体命令,得到以下输出_:使用Anaconda Cloud api网站https://api.anaconda.org 获取软件包元数据......... 解决软件包规格: ....发现以下规格存在冲突:
  • python 3.5*
  • xgboost 0.4.0* 你能帮忙解决吗?谢谢您的帮助。
- aman sanduja
Python主要有两个版本:2.7和3.5。您应该安装Anaconda用于Python 2.7。然后一切都应该顺利。对不起。 - Adrien Renaud

6

对于Python 2.7版本

$ conda install -c aterrel xgboost=0.4.0

或者

$ conda install -c biconda xgboost=0.6a2

适用于Python 3.6

$ brew install gcc@5
$ pip install xgboost

5

对于Python-3.x,在Mac上执行以下操作:

确保已安装gcc-6(和g++-6),如果未安装,请使用以下命令进行安装:

brew install gcc

然后,按照以下步骤进行

git clone --recursive https://github.com/dmlc/xgboost
cd xgboost/
make -j4
cd python-package
python3 setup.py install

如果您正在使用Anaconda并且尚未配置路径以使用 ~/anaconda/bin 中的二进制文件,则请运行最后一行:

/path/to/anaconda/bin/python3 setup.py install


1
我遵循了以下错误提示[Errno 2] No such file or directory: 'cmake': 'cmake' - Mez13
@Mez13:你确定已经安装了 cmake 吗? - Ébe Isaac

4
我按照 Bryan Butler 的回答操作成功了,但我需要做出一些修改:
  • 使用gcc-7/g++-7代替gcc-6/g++-6
  • 在运行make clean_all && make -j4时,我遇到了一个关于as的错误。所以,我只需运行export PATH=/usr/bin:$PATH即可解决!

2

我正在运行Mac OS Mojave 10.14.5,并且按照Mac OS的“高级方法”说明在https://xgboost.readthedocs.io/en/latest/build.html#上进行操作。简而言之:

最初的回答:按照该链接中的“高级方法”说明,可在Mac OS Mojave 10.14.5上成功运行。

brew install cmake 
brew install gcc@8
git clone --recursive https://github.com/dmlc/xgboost
mkdir xgboost/my_build
cd xgboost/my_build
CC=gcc-8 CXX=g++-8 cmake ..
make -j4
cd ../python_package
python3 setup.py install

1
在我的情况下,这里描述的所有其他方法都失败了。我成功地按照官方安装说明(http://xgboost.readthedocs.io/en/latest/build.html#building-on-macos)进行了安装。
我的系统是MacOS Serria,所以我遵循了"在macOS上构建"的指示。
然而,与config.mk文件中的"将这两行替换为(5或6或7;取决于您的gcc版本"相反,我做了:
export CC = gcc-5
export CXX = g++-5

尽管gcc-version显示为Apple LLVM version 9.0.0,但按照“Python包安装”的官方说明操作后,我能够在Python中运行该包。

1
你可以使用pip安装catboost。这是一个最近开源的梯度提升库,与XGBoost具有类似的接口,但更准确、更快,并且原生支持分类特征。这是该库的网站:https://catboost.yandex

0

2021年3月 - 使用pip安装XGBoost 1.3.3没有任何问题

> pip3 install xgboost

>>> import xgboost as xgb
>>> xgb.__version__
'1.3.3'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接