How to Install XGBoost for Python on macOS

XGBoost is a library for developing very fast and accurate gradient boosting models.

It is a library at the center of many winning solutions in Kaggle data science competitions.

In this tutorial, you will discover how to install the XGBoost library for Python on macOS.

Let’s get started.

How to Install XGBoost for Python on macOS

How to Install XGBoost for Python on macOS
Photo by auntjojo, some rights reserved.

Tutorial Overview

This tutorial is divided into 3 parts; they are:

  1. Install MacPorts
  2. Build XGBoost
  3. Install XGBoost

Note: I have used this procedure for years on a range of different macOS versions and it has not changed. This tutorial was written and tested on macOS High Sierra (10.13.1).

1. Install MacPorts

You need GCC and a Python environment installed in order to build and install XGBoost for Python.

I recommend GCC 7 and Python 3.6 and I recommend installing these prerequisites using MacPorts.

  • 1. For help installing MacPorts and a Python environment step-by-step, see this tutorial:

>> How to Install a Python 3 Environment on Mac OS X for Machine Learning and Deep Learning

  • 2. After MacPorts and a working Python environment are installed, you can install and select GCC 7 as follows:

  • 3. Confirm your GCC installation was successful as follows:

You should see the version of GCC printed; for example:

What version did you see?
Let me know in the comments below.

2. Build XGBoost

The next step is to download and compile XGBoost for your system.

  • 1. First, check out the code repository from GitHub:

  • 2. Change into the xgboost directory.

  • 3. Copy the configuration we intend to use to compile XGBoost into position.

  • 4. Compile XGBoost; this requires that you specify the number of cores on your system (e.g. 8, change as needed).

The build process may take a minute and should not produce any error messages, although you may see some warnings that you can safely ignore.

For example, the last snippet of the compilation might look as follows:

Did this step work for you?
Let me know in the comments below.

3. Install XGBoost

You are now ready to install XGBoost on your system.

  • 1. Change directory into the Python package of the xgboost project.

  • 2. Install the Python XGBoost package.

The installation is very fast.

For example, at the end of the installation, you may see messages like the following:

  • 3. Confirm that the installation was successful by printing the xgboost version, which requires the library to be loaded.

Save the following code to a file called version.py.

Run the script from the command line:

You should see the XGBoost version printed to screen:

How did you do?
Post your results in the comments below.

Further Reading

This section provides more resources on the topic if you are looking to go deeper.

Summary

In this tutorial, you discovered how to install XGBoost for Python on macOS step-by-step.

Do you have any questions?
Ask your questions in the comments below and I will do my best to answer.


Want To Learn The Algorithm Winning Competitions?

XGBoost With Python

Develop Your Own XGBoost Models in Minutes

…with just a few lines of Python

Discover how in my new Ebook:
XGBoost With Python

It covers self-study tutorials like:
Algorithm Fundamentals, Scaling, Hyperparameters, and much more…

Bring The Power of XGBoost To
Your Own Projects

Skip the Academics. Just Results.

Click to learn more.


26 Responses to How to Install XGBoost for Python on macOS

  1. Abhishek Dalakoti January 17, 2018 at 8:36 pm #

    can you put for windows?

  2. Juliano Petronetto January 19, 2018 at 5:15 am #

    Or can simply use it in Docker: https://github.com/petronetto/machine-learning-alpine

  3. Gabriel Kreplak January 19, 2018 at 6:45 am #

    After:

    $ gcc -v

    I did not get gcc version but:

    Configured with: –prefix=/Library/Developer/CommandLineTools/usr –with-gxx-include-dir=/usr/include/c++/4.2.1
    Apple LLVM version 9.0.0 (clang-900.0.39.2)
    Target: x86_64-apple-darwin17.3.0
    Thread model: posix
    InstalledDir: /Library/Developer/CommandLineTools/usr/bin

    Strange…
    I didn’t try further (still)

    • Jason Brownlee January 20, 2018 at 8:11 am #

      Looks like you are still using the apple compiler.

      You may need to tell macports that you want to use the newly installed compiler.

    • Steven Limpert June 16, 2018 at 8:00 pm #

      I had the same issue. However, I resolved it by using the command “hash -r” to get Terminal to recognize the change. According to this, https://stackoverflow.com/questions/8361002/how-to-use-the-gcc-installed-in-macports, opening a new Terminal window would have worked as well. After using “hash -r”, “gcc -v” gave the same result shown in this tutorial.

  4. Sergey January 20, 2018 at 11:09 pm #

    Hi Jason

    All worked great till

    make -j8

    I received fatal error and then – some errors

    /opt/local/include/gcc7/c++/cwchar:44:10: fatal error: wchar.h: No such file or directory
    #include
    …..

    Do you have any ideas?

    • Jason Brownlee January 21, 2018 at 9:11 am #

      Oh dear. No good ideas sorry.

      Perhaps try posting to stack overflow or the xgboost issue tracker:
      https://github.com/dmlc/xgboost/issues

      Or try checking out the v0.6 version in case something changed in the recent 0.7 release?

    • MC February 17, 2018 at 6:30 am #

      Same error

  5. cgironda January 23, 2018 at 12:13 am #

    Hi Jason,

    I just used,

    conda install -c conda-forge xgboost

    So I did not follow steps 1, 2 and 3. However, it depends on tastes.

    Cheers

  6. Rajat Sharma January 30, 2018 at 11:23 pm #

    Jason,
    Why do you think that python is a better option for machine learning than R or Matlab?

  7. Arvind Ravichandran February 9, 2018 at 3:07 am #

    Thank you very much! Worked brilliantly.

  8. Matt Smith February 22, 2018 at 4:23 am #

    Brilliant! I was previously trying to use homebrew to install gcc and then editing the config.mk file, as basically all other tutorials tell you to, but was constantly getting errors. This is the first method that worked for me (on mac OS Sierra 10.12.6); thank you!

  9. Gary March 19, 2018 at 7:29 am #

    cgironda you are a star! You could spend a day trying to answer all the questions out there related to unsupported option '-fopenmp' and you wouldn’t even come close to getting to all of them. You rescued me after about 4 hours of fussing with this. Thanks!

  10. Alvic May 15, 2018 at 12:00 pm #

    Hi Jason,

    Have followed your instructions up to step 2 build XG boost and this is the message I saw on my terminal.

    a – build/metric/metric.o
    a – build/metric/multiclass_metric.o
    a – build/metric/rank_metric.o
    a – build/objective/multiclass_obj.o
    a – build/objective/objective.o
    a – build/objective/rank_obj.o
    a – build/objective/regression_obj.o
    a – build/predictor/cpu_predictor.o
    a – build/predictor/predictor.o
    a – build/tree/tree_model.o
    a – build/tree/tree_updater.o
    a – build/tree/updater_colmaker.o
    a – build/tree/updater_fast_hist.o
    a – build/tree/updater_histmaker.o
    a – build/tree/updater_prune.o
    a – build/tree/updater_refresh.o
    a – build/tree/updater_skmaker.o
    a – build/tree/updater_sync.o
    ld: can’t open output file for writing: xgboost, errno=21 for architecture x86_64
    collect2: error: ld returned 1 exit status
    make: *** [xgboost] Error 1
    make: *** Waiting for unfinished jobs….
    Alvics-MacBook-Pro-2:xgboost alviceugenejosol$ a – b

    • Jason Brownlee May 15, 2018 at 2:45 pm #

      Ouch. I have not seen this.

      Perhaps try a make clean, then try building again?
      Perhaps try posting the error to the xgboost user group?

  11. Akeel September 20, 2018 at 2:47 am #

    Hi Jason,
    Worked like a charm. Thanks for your detailed instructions.
    -A

Leave a Reply