結論
pipを最新にしてxgboostをインストールする
pip install --upgrade pip
pip install xgboost
経緯
Kaggleで遊ぶために、開発環境を用意しようと思い、Docker HubオフィシャルイメージのPython:3.7.0でxgboostをインストールしようとした。
> pip install xgboost
~~~
error: [Errno 2] No such file or directory: 'cmake': 'cmake'
----------------------------------------
Command "/usr/local/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-xsqriy3o/xgboost/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-9d5lcmw_/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-xsqriy3o/xgboost/
You are using pip version 18.1, however version 21.2.4 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
cmakeが無いのでエラーになっているようなログだったので、cmakeをインストールして再度xgboostをインストールする。
> apt update && apt install -y cmake
~~~
> pip install xgboost
~~~
INFO:XGBoost build_ext:Building from source. /tmp/pip-install-0i5oh6j7/lib/libxgboost.so
INFO:XGBoost build_ext:Run CMake command: ['cmake', 'xgboost', '-GUnix Makefiles', '-DUSE_OPENMP=1', '-DUSE_CUDA=0', '-DUSE_NCCL=0', '-DBUILD_WITH_SHARED_NCCL=0', '-DHIDE_CXX_SYMBOLS=1', '-DUSE_HDFS=0', '-DUSE_AZURE=0', '-DUSE_S3=0', '-DPLUGIN_LZ4=0', '-DPLUGIN_DENSE_PARSER=0']
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
CMake 3.13 or higher is required. You are running version 3.7.2
~~~
subprocess.CalledProcessError: Command '['cmake', 'xgboost', '-GUnix Makefiles', '-DUSE_OPENMP=0', '-DUSE_CUDA=0', '-DUSE_NCCL=0', '-DBUILD_WITH_SHARED_NCCL=0', '-DHIDE_CXX_SYMBOLS=1', '-DUSE_HDFS=0', '-DUSE_AZURE=0', '-DUSE_S3=0', '-DPLUGIN_LZ4=0', '-DPLUGIN_DENSE_PARSER=0']' returned non-zero exit status 1.
----------------------------------------
Command "/usr/local/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-0i5oh6j7/xgboost/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-gf6cgp94/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-0i5oh6j7/xgboost/
You are using pip version 18.1, however version 21.2.4 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
デフォルトでインストールできるcmakeのバージョンが古いようで面倒なことになりそうだと思ったが、pipのバージョンが古いと言われているので、なんとなくバージョンをあげることにした。するとxgboostのインストールが成功した。
> pip install --upgrade pip
> pip install xgboost
コメント