我這里參考的是https://stackoverflow.com/questions/33749735/how-to-install-xgboost-package-in-python-windows-platform/41274589#41274589這個(gè)回答中的安裝過(guò)程
另外 http://lib.csdn.net/article/python/62054 這一篇文章寫的比較全面,可以參考
下載編譯好的xgboost鏈接:http://pan.baidu.com/s/1geNWRdh 密碼:yp61
课竣,由于使用的是虛擬環(huán)境,如果是直接在虛擬環(huán)境的路徑當(dāng)中運(yùn)行
python setup.py install
這種方式會(huì)使用你機(jī)器源python當(dāng)中的包(就是你虛擬環(huán)境映射的那個(gè)環(huán)境),所以如果你源python環(huán)境沒有安裝numpy的話就會(huì)出現(xiàn)下面的錯(cuò)誤
ImportError: No module named numpy.distutils.core
這個(gè)時(shí)候只需要workon +你的虛擬環(huán)境
再cd+你的虛擬環(huán)境路徑+Lib\site-packages\xgboost\python-package
進(jìn)入到這個(gè)目錄當(dāng)中再運(yùn)行
python setup.py install
- 如果此時(shí)出現(xiàn)
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.
這里只是一個(gè)提示歪沃,不用管妇菱,不要升級(jí)到0.19晦墙。我升級(jí)之后發(fā)現(xiàn)xgboost在cmd當(dāng)中能夠引入,但是在pycharm引用會(huì)出現(xiàn)WindowsError: [Error 126]挨务。我使用的是0.18.2沒有問(wèn)題
- 如果出現(xiàn)的是
error: Error: setup script specifies an absolute path:
/home/www/prj/LightGBM/Python-package/lightgbm/../../lib_lightgbm.so
修改setup.py中include_package_data=False, (原來(lái)是True)
再次運(yùn)行python setup.py install 即可
重點(diǎn)
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]
出現(xiàn)這個(gè)問(wèn)題可能會(huì)有兩個(gè)原因第一個(gè)原因是可能python版本和操作系統(tǒng)版本不一致的原因,64位操作系統(tǒng)必須使用64位的python
一、操作環(huán)境的確認(rèn)
platform:windows 10,64位
Python: Python2.7.11 64位
1谎柄、如果是64位操作系統(tǒng)果漾,務(wù)必保證Python也是64位,不然到最后會(huì)出現(xiàn)“WindowsError:[Error 193] %1 不是有效的 Win32”這樣的錯(cuò)誤谷誓,這是由Python和操作系統(tǒng)位數(shù)混用造成的2绒障、Python版本用2.7做測(cè)試,64位的Python3應(yīng)該也沒問(wèn)題捍歪。
附1:如何查看你的Python版本:
方法一:打開Python IDE(或者在windows的cmd里輸入python)看到“64bit(amd64)”就是64位Python户辱。
方法二:在Python IDE里輸入:
import sys, platformplatform.architecture()
如果返回('64bit','WindowsPE')也說(shuō)明是64位。
二糙臼、在檢查完版本問(wèn)題后應(yīng)該就是mingw-w64的問(wèn)題(如果直接使用在線下載完全下不下來(lái)庐镐,所以使用release版本)。
1变逃、下載地址:
https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/5.3.0/threads-win32/seh/
點(diǎn)擊下載x86_64-5.3.0-release-win32-seh-rt_v4-rev0.7z必逆,適用64位操作系統(tǒng)。
另外揽乱,建議不要使用mingw-w64-install.exe(170.0 kB)在線下載,因?yàn)樵谶x擇安裝版本后下載有些版本會(huì)崩掉(比如本版本)名眉。
2、解壓到某一目錄下凰棉,我放到了C盤根目錄损拢。(目錄最好不要有中文字符)
3、配置環(huán)境變量撒犀。將C:\mingw64\bin;粘貼到path環(huán)境變量下福压,用“;”隔開。
我的電腦圖標(biāo)->右鍵->屬性->高級(jí)系統(tǒng)設(shè)置->選擇“高級(jí)”選項(xiàng)->選擇下面“環(huán)境變量”->用戶變量或者系統(tǒng)變量均可或舞,若無(wú)path則創(chuàng)建一個(gè)path變量荆姆。