Chris
Chris

Reputation: 13680

XGBoost Install Error

I am hitting an error trying to compile xgboost. I do not have sudo access which makes things tougher.

I ran the following:

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

Which gives me the following error:

g++ -std=c++0x -Wall -O3 -msse2  -Wno-unknown-pragmas -funroll-loops -Iinclude   -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/learner.o src/learner.cc >build/learner.d
g++ -c -std=c++0x -Wall -O3 -msse2  -Wno-unknown-pragmas -funroll-loops -Iinclude   -Idmlc-core/include -Irabit/include -fPIC -fopenmp src/learner.cc -o build/learner.o
In file included from dmlc-core/include/dmlc/logging.h:15,
                 from include/xgboost/logging.h:11,
                 from src/learner.cc:7:
dmlc-core/include/dmlc/./base.h:71: note: #pragma message: Will need g++-4.6 or higher to compile allthe features in dmlc-core, compile without c++0x, some features may be disabled
In file included from include/xgboost/./gbm.h:18,
                 from include/xgboost/learner.h:16,
                 from src/learner.cc:8:
include/xgboost/././data.h: In constructor ‘xgboost::DMatrix::DMatrix()’:
include/xgboost/././data.h:234: error: ‘nullptr’ was not declared in this scope
In file included from include/xgboost/learner.h:16,
                 from src/learner.cc:8:
include/xgboost/./gbm.h: At global scope:
include/xgboost/./gbm.h:72: error: ‘nullptr’ was not declared in this scope
In file included from src/learner.cc:17:
src/./common/io.h:30: error: expected ‘;’ before ‘override’
src/learner.cc:496: error: expected ‘;’ at end of input
src/learner.cc:496: error: expected ‘}’ at end of input
In file included from src/learner.cc:17:
src/./common/io.h: In constructor ‘xgboost::common::PeekableInStream::PeekableInStream(dmlc::Stream*)’:
src/./common/io.h:28: error: class ‘xgboost::common::PeekableInStream’ does not have any field named ‘strm_’
src/./common/io.h:28: error: class ‘xgboost::common::PeekableInStream’ does not have any field named ‘buffer_ptr_’
src/./common/io.h: At global scope:
src/./common/io.h:28: error: expected unqualified-id at end of input
src/./common/io.h:28: error: expected ‘}’ at end of input
src/./common/io.h:28: error: expected ‘}’ at end of input
make: *** [build/learner.o] Error 1

Upvotes: 3

Views: 515

Answers (1)

Shabaz Patel
Shabaz Patel

Reputation: 291

You can install xgboost library along with other essential libraries as follows(please choose based on the libraries sufficient for your project), my main focus in this answer is to make it helpful in setting up for most data science projects requiring sklearn, pandas, scipy and xgboost algorithms along with visualization libraries.

# installing essentials
apt-get update; \
apt-get install -y \
  python python-pip \
  build-essential \
  python-dev \
  python-setuptools \
  python-matplotlib \
  libatlas-dev \
  curl \
  libatlas3gf-base && \
  apt-get clean

# upgrading pip
curl -O https://bootstrap.pypa.io/get-pip.py && \
python get-pip.py && \
rm get-pip.py
# installing libraries
pip install numpy==1.13.1
pip install scipy
pip install -U scikit-learn
pip install seaborn
pip install --pre xgboost

If you're still having environment issues I would suggest using this Dockerfile. You might also find Datmo conversion useful to facilitate this.

DISCLAIMER: I work at this company called Datmo, which is building a community of developers by simplifying the machine learning workflow.

Upvotes: 1

Related Questions