我这里参考的是https://stackoverflow.com/questions/33749735/how-to-install-xgboost-package-in-python-windows-platform/41274589#41274589这个回答中的安装过程
另外 http://lib.csdn.net/article/python/62054 这一篇文章写的比较全面,可以参考
下载编译好的xgboost链接:http://pan.baidu.com/s/1geNWRdh 密码:yp61
,由于使用的是虚拟环境,如果是直接在虚拟环境的路径当中运行
python setup.py install
这种方式会使用你机器源python当中的包(就是你虚拟环境映射的那个环境),所以如果你源python环境没有安装numpy的话就会出现下面的错误
ImportError: No module named numpy.distutils.core
这个时候只需要workon +你的虚拟环境
再cd+你的虚拟环境路径+Lib\site-packages\xgboost\python-package
进入到这个目录当中再运行
python setup.py install
- 如果此时出现
Warning (from warnings module):
File "D:\Programs\Python\Python36\lib\site-packages\sklearn\cross_validation.py", line 44
"This module will be removed in 0.20.", DeprecationWarning)
DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.
这里只是一个提示,不用管,不要升级到0.19。我升级之后发现xgboost在cmd当中能够引入,但是在pycharm引用会出现WindowsError: [Error 126]。我使用的是0.18.2没有问题
- 如果出现的是
error: Error: setup script specifies an absolute path:
/home/www/prj/LightGBM/Python-package/lightgbm/../../lib_lightgbm.so
修改setup.py中include_package_data=False, (原来是True)
再次运行python setup.py install 即可
重点
File "E:\ENVS\py2bigdata\lib\site-packages\xgboost-0.4-py2.7.egg\xgboost_init_.py", line 11, in <module>
from .core import DMatrix, Booster
File "E:\ENVS\py2bigdata\lib\site-packages\xgboost-0.4-py2.7.egg\xgboost\core.py", line 86, in <module>
_LIB = _load_lib()
File "E:\ENVS\py2bigdata\lib\site-packages\xgboost-0.4-py2.7.egg\xgboost\core.py", line 80, in load_lib
lib = ctypes.cdll.LoadLibrary(lib_path[0])
File "d:\program files\python2.7\Lib\ctypes_init.py", line 440, in LoadLibrary
return self.dlltype(name)
File "d:\program files\python2.7\Lib\ctypes_init.py", line 362, in init
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126]
出现这个问题可能会有两个原因第一个原因是可能python版本和操作系统版本不一致的原因,64位操作系统必须使用64位的python
一、操作环境的确认
platform:windows 10,64位
Python: Python2.7.11 64位
1、如果是64位操作系统,务必保证Python也是64位,不然到最后会出现“WindowsError:[Error 193] %1 不是有效的 Win32”这样的错误,这是由Python和操作系统位数混用造成的2、Python版本用2.7做测试,64位的Python3应该也没问题。
附1:如何查看你的Python版本:
方法一:打开Python IDE(或者在windows的cmd里输入python)看到“64bit(amd64)”就是64位Python。
方法二:在Python IDE里输入:
import sys, platformplatform.architecture()
如果返回('64bit','WindowsPE')也说明是64位。
二、在检查完版本问题后应该就是mingw-w64的问题(如果直接使用在线下载完全下不下来,所以使用release版本)。
1、下载地址:
https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/5.3.0/threads-win32/seh/
点击下载x86_64-5.3.0-release-win32-seh-rt_v4-rev0.7z,适用64位操作系统。
另外,建议不要使用mingw-w64-install.exe(170.0 kB)在线下载,因为在选择安装版本后下载有些版本会崩掉(比如本版本)。
2、解压到某一目录下,我放到了C盘根目录。(目录最好不要有中文字符)
3、配置环境变量。将C:\mingw64\bin;粘贴到path环境变量下,用“;”隔开。
我的电脑图标->右键->属性->高级系统设置->选择“高级”选项->选择下面“环境变量”->用户变量或者系统变量均可,若无path则创建一个path变量。
网友评论