最近在搞python 需要安装工具xgboost。当时以为可以直接使用命令pip install xgboost 搞定,结果报错了,说*****找不到之类的,百思不得其解。
遇到问题当然是先搜索了,这才发现xgboost在window 平台下安装时多么不方便。
首先说下我的环境:
自己安装的Python 2.7 64位
系统:win10 64位
//下面这个方法我是失败了的,但是好多人都能成功,所以简单介绍
//参考文章:http://blog.csdn.net/zyghs/article/details/50897716
网络上的有好多文章都是使用mingw64去做的,于是果断按照步骤来了,下面简单描述
一、mingw-w64的安装
mingw-w64是为了在windows环境下直接编译github上下载的xgboost项目用的工具
下载地址
点击下载x86_64-5.3.0-release-win32-seh-rt_v4-rev0.7z
配置环境变量,如C:\mingw64\bin;
cmd内输入mingw32-make 回车 提示mingw32-make: *** No targets specified and no makefile found. Stop. 类似的信息表示成功
二、安装Git
git用于从github上下载xgboost工程用的,不多介绍
三、Pip安装
有的版本python内置pip ,没有的需要自己安装 ,不多介绍
四、numpy 和scipy 安装
这两个是xgboost依赖工具包,可以直接在cmd中使用pip install numpy 和pip install scipy 安装
五、安装xgboost
1.使用git bash 执行如下
git clone --recursive https://github.com/dmlc/xgboost
cd xgboost
git submodule init
git submodule update
cp make/mingw64.mk config.mk
mingw32-make -j4
cd python-package
python setup.py install
如果以上都没报错 则大功告成。
遗憾的是我在mingw32-make -j4 这一步报错了,试了两台电脑都一样,折腾了半天还失败的感觉很不爽。不过也只能另谋出路
################ 分割线 ################
//以下是我成功的方法
前提:
不使用mingw64 改用visual studio 2013(其他版本应该也可以,只是我正好有2013),没有的话需要先安装
已安装python2.7
已安装xgboost依赖工具包numpy 和scipy
已安装git
1、安装 cmake
下载地址https://cmake.org/download/ 下载cmake-3.10.0-rc5-win64-x64.msi 安装
添加环境变量C:\Program Files\CMake\bin(具体路径根据自己的安装目录)
2、clone xgboost资源
选择一个文件夹 按住shift+右键
选择 在此处打开Powershell 窗口
不知道cmd 或 git bash 是否可以 没有尝试 感觉可以
输入命令
git clone --recursive https://github.com/dmlc/xgboost 注意:--recursive 一定要有否则下载不全
3、生成Visual Studio 工程
依次执行下列命令
cd xgboost
mkdir build
cd build
cmake .. -G"Visual Studio 12 2013 Win64" 注:.. 左右各有一个空格;不同的vs版本 引号内的内容有所差别,请自己修改,如果是64位的2013则可以复制
不报错就是成功
4、在vs 工程内build
使用visual studio打开 xgboost/build/ALL_BUILD.vcxproj
在visual studio 中选择工具栏 BUILD/Configuration Manager...
设置为Release版 x64平台。即Active solution configuration 选Release; Active solution platform 选x64. 然后Close
然后工具栏 BUILD/Build Solution
完成后会在xgboost\lib 下生成xgboost.dll
5、安装到python
将4中生成的xgboost.dll拷贝到xgboost\python-package 文件夹内
然后命令行
cd python-package
python setup.py install
大功告成
6、测试
命令行
python -c "import xgboost" 如果不报错 则表示成功
stackoverflow是个好网站