当前位置:   article > 正文

关于安装xgboost中升级cmake和gcc的步骤(无编译)_subprocess.calledprocesserror: command '['cmake',

subprocess.calledprocesserror: command '['cmake', 'xgboost', '-gunix makefil

在centos7上安装xgboost的时候遇到这样的问题:

File "/usr/local/lib/python3.5/subprocess.py", line 271, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['cmake', 'xgboost', '-GUnix Makefiles', '-DUSE_OPENMP=1', '-DUSE_AZURE=0', '-DBUILD_WITH_SHARED_NCCL=0', '-DUSE_HDFS=0', '-DHIDE_CXX_SYMBOLS=1', '-DUSE_CUDA=0', '-DPLUGIN_LZ4=0', '-DUSE_S3=0', '-DPLUGIN_DENSE_PARSER=0', '-DUSE_NCCL=0']' returned non-zero exit status 1
    
    ----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-as6kfgv9/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-7zuj1muf/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-as6kfgv9/xgboost
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述这种情况是因为xgboost的安装依赖于cmake和gcc编译器,如果版本不够新的话就会报错,而安装xgboost1.1.0以上版本需要cmake3.13.0和gcc5.0版本。
一、升级cmake
下载文件https://cmake.org/files/v3.15/cmake-3.15.0-rc1-Linux-x86_64.tar.gz
下载好之后解压到/usr/local,并且重命名为cmake-3.15.0

tar -xzvf cmake-3.15.0-rc1-Linux-x86_64.tar.gz
mv cmake cmake-3.15.0-rc1-Linux-x86_64 cmake-3.15.0
  • 1
  • 2

将原软链接备份后,增加新的软链接

mv /usr/bin/cmake /usr/bin/cmake.bak
ln -s /usr/local/cmake-3.15.0/bin/cmake /usr/bin/cmake
  • 1
  • 2

即可。可以使用cmake --version查询cmake的版本检查是否已经更新
二、升级gcc
这里参考了该博客CentOS 7升级gcc版本
主要步骤为:
安装centos-release-scl和devtoolset

yum install centos-release-scl
yum install devtoolset-8-gcc*
  • 1
  • 2

安装的devtoolset是在 /opt/sh 目录下的,所以将gcc、g++、c++的软链接全部替换为devtoolset目录里的内容

mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++-4.8.5
mv /usr/bin/c++ /usr/bin/c++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/c++ /usr/bin/c++
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

检查gcc、g++、c++版本(举例gcc,其他同)

gcc --version
  • 1

若更新成功应如下:
在这里插入图片描述三、安装xgboost

pip install xgboost
  • 1

安装成功如下:
在这里插入图片描述总结:千万不要随便去编译安装,我在服务器升级gcc安装xgboost很快就完成了,而自己电脑虚拟机上升级gcc,因为用的编译安装(使用的make -j4),安装了整整4个多小时还没有编译完成,简直坑啊。

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号