簡體   English   中英

Python Anaconda Windows 10的XGBoost安裝問題(2018年5月18日)

[英]XGBoost installation issues for Python Anaconda Windows 10 (18 May 2018)

在過去的幾天里,我嘗試使用上面的說明安裝XGBoost

一些說明是直截了當的(例如,conda conda install -c conda-forge xgboost )。 其他人涉及幾十個步驟,其中一些步驟不清楚並且像我這樣的新手感到困惑。

有些安裝似乎有效,但在jupyter筆記本中導入模塊失敗了。 例如,我可以在...\\Anaconda2\\envs\\py36\\Lib\\site-packages\\xgboost-0.71-py3.6.egg\\xgboost看到已安裝的文件,但導入會產生錯誤。

我的最新嘗試按照https://www.kaggle.com/general/30163#latest-330213上的說明進行: conda install -c anaconda py-xgboost

再次,安裝似乎工作:我可以看到...\\Anaconda2\\envs\\py36\\Lib\\site-packages\\xgboost下安裝的文件。 但在我的筆記本中,當我嘗試使用兩者導入模塊時

from xgboost import XGBRegressor

import xgboost

我得到OSError: [WinError 126] The specified module could not be found error.

完整的回溯如下。

有沒有解決這個問題? 更好的安裝方式? 我想繼續Dan Becker介紹瘋狂的ML!

版本:

 python version : 3.6.4150.1013
  conda version : 4.3.30

  Microsoft Windows : Version 10.0.16299.431
           platform : win-64
           git bash : launches a window labeled `MINGW64:/c/users/karls`

追溯:

---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-7-15d947748610> in <module>()
----> 1 from xgboost import XGBRegressor   # OSError: [WinError 126] The specified module could not be found
      2 
      3 my_model = XGBRegressor()
      4 # Add silent=True to avoid printing out updates with each cycle
      5 my_model.fit(train_X, train_y, verbose=False)

~\Anaconda2\envs\py36\lib\site-packages\xgboost\__init__.py in <module>()
      9 import os
     10 
---> 11 from .core import DMatrix, Booster
     12 from .training import train, cv
     13 from . import rabit                   # noqa

~\Anaconda2\envs\py36\lib\site-packages\xgboost\core.py in <module>()
    113 
    114 # load the XGBoost library globally
--> 115 _LIB = _load_lib()
    116 
    117 

~\Anaconda2\envs\py36\lib\site-packages\xgboost\core.py in _load_lib()
    107     if len(lib_path) == 0:
    108         return None
--> 109     lib = ctypes.cdll.LoadLibrary(lib_path[0])
    110     lib.XGBGetLastError.restype = ctypes.c_char_p
    111     return lib

~\Anaconda2\envs\py36\lib\ctypes\__init__.py in LoadLibrary(self, name)
    424 
    425     def LoadLibrary(self, name):
--> 426         return self._dlltype(name)
    427 
    428 cdll = LibraryLoader(CDLL)

~\Anaconda2\envs\py36\lib\ctypes\__init__.py in __init__(self, name, mode, handle, use_errno, use_last_error)
    346 
    347         if handle is None:
--> 348             self._handle = _dlopen(self._name, mode)
    349         else:
    350             self._handle = handle

OSError: [WinError 126] The specified module could not be found

編輯1 安裝嘗試

示例1:conda install -c anaconda py-xgboost

  1. 啟動Anaconda提示
  2. 激活py36
  3. 運行conda install -c anaconda py-xgboost

以下是我幾天前嘗試此安裝時的命令窗口結果(當我今天回溯這些步驟時,在“已安裝所有請求的軟件包”下面確認):

(py36) C:\Users\karls>conda install -c anaconda py-xgboost
Fetching package metadata ...............
Solving package specifications: .

Package plan for installation in environment C:\Users\karls\Anaconda2\envs\py36:

The following packages will be UPDATED:

    bzip2:        1.0.6-haa5b126_2        --> 1.0.6-vc14_3          anaconda [vc14]

The following packages will be SUPERSEDED by a higher-priority channel:

    cryptography: 2.1.4-py36he1d7878_0    --> 2.0.3-py36h123decb_1  anaconda
    curl:         7.58.0-h7602738_0       --> 7.55.1-vc14hdaba4a4_3 anaconda [vc14]
    freetype:     2.8-h51f8f2c_1          --> 2.8-vc14h17c9bdf_0    anaconda [vc14]
    hdf5:         1.10.1-h98b8871_1       --> 1.10.1-vc14hb361328_0 anaconda [vc14]
    icu:          58.2-ha66f8fd_1         --> 58.2-vc14hc45fdbb_0   anaconda [vc14]
    jpeg:         9b-hb83a4c4_2           --> 9b-vc14h4d7706e_1     anaconda [vc14]
    libiconv:     1.15-h1df5818_7         --> 1.15-vc14h29686d3_5   anaconda [vc14]
    libpng:       1.6.34-h79bbb47_0       --> 1.6.32-vc14h5163883_3 anaconda [vc14]
    libssh2:      1.8.0-hd619d38_4        --> 1.8.0-vc14hcf584a9_2  anaconda [vc14]
    libtiff:      4.0.9-h0f13578_0        --> 4.0.8-vc14h04e2a1e_10 anaconda [vc14]
    libxml2:      2.9.7-h79bbb47_0        --> 2.9.4-vc14h8fd0f11_5  anaconda [vc14]
    libxslt:      1.1.32-hf6f1972_0       --> 1.1.29-vc14hf85b8d4_5 anaconda [vc14]
    lxml:         4.2.1-py36heafd4d3_0    --> 4.1.1-py36he0adb16_0  anaconda
    lzo:          2.10-h6df0209_2         --> 2.10-vc14h0a64fa6_1   anaconda [vc14]
    openssl:      1.0.2n-h74b6da3_0       --> 1.0.2l-vc14hf4c37d5_5 anaconda [vc14]
    pillow:       5.0.0-py36h0738816_0    --> 4.2.1-py36hdb25ab2_0  anaconda
    py-xgboost:   0.71-py36h6538335_0     --> 0.71-py36h6538335_0   anaconda
    pycurl:       7.43.0.1-py36h74b6da3_0 --> 7.43.0-py36h086bf4c_3 anaconda
    pyopenssl:    17.5.0-py36h5b7d817_0   --> 17.4.0-py36h3316aad_0 anaconda
    qt:           5.6.2-vc14h6f8c307_12   --> 5.6.2-vc14h6f8c307_12 anaconda [vc14]
    sqlite:       3.22.0-h9d3ae62_0       --> 3.20.1-vc14h7ce8c62_1 anaconda [vc14]
    tk:           8.6.7-hcb92d03_3        --> 8.6.7-vc14hb68737d_1  anaconda [vc14]
    yaml:         0.1.7-hc54c509_2        --> 0.1.7-vc14hb31d195_1  anaconda [vc14]
    zlib:         1.2.11-h8395fce_2       --> 1.2.11-vc14h1cdd9ab_1 anaconda [vc14]

Proceed ([y]/n)?

我輸入了y,回車並安裝了模塊。 我沒有復制結果,但它表示成功 - 但是當我嘗試在筆記本中導入時沒有找到模塊。

以下是我今天再次采取這些步驟的結果:

(C:\Users\karls\Anaconda2) C:\Users\karls>activate py36

(py36) C:\Users\karls>conda install -c anaconda py-xgboost
Fetching package metadata ...............
Solving package specifications: .

# All requested packages already installed.
# packages in environment at C:\Users\karls\Anaconda2\envs\py36:
#
py-xgboost                0.71             py36h6538335_0    anaconda

(py36) C:\Users\karls>

Anaconda2 \\ ENVS \\ py36 \\ LIB \\站點包\\ xgboost

Anaconda2 \\ ENVS \\ py36 \\ LIB \\站點包\\ xgboost__pycache__

編輯2示例2: XGBOOST 0.71 A.

XGBOOST 0.71 B

XGBOOST 0.71 C

我在Windows 10 win-64上發現了一個安裝過程似乎在jupyter筆記本上使用Anaconda 4.3 for python 3.6.4。 下面我說明我遵循的過程。 在底部,我包括已安裝文件夾和文件的幾個屏幕截圖。 如果您對如何改進此過程有任何建議,請告訴我。

此過程根據http://adataanalyst.com/machine-learning/installing-xgboost-for-windows-10/上的說明進行調整,而后者又來自http://stackoverflow.com/questions/33749735/how-to -install-xgboost-package-in-python-windows-platform

PREP

  1. 如果您沒有git,請安裝它並將其添加到PATH中。

  2. 作為之前嘗試安裝xgboost的一部分,我最近更新了numpy和scipy到最新版本

  3. 下載並安裝MinGW-64: http//sourceforge.net/projects/mingw-w64/

    一種。 在設置對話框中,將架構設置為“x86_64”(是i686),將線程設置為“win32”(是posix)

    我將MinGW-64安裝到C:\\ Program Files中的默認文件路徑,所以我將C:\\ Program Files \\ mingw-w64 \\ x86_64-8.1.0-win32-seh-rt_v6-rev0 \\ mingw64 \\ bin添加到我的PATH環境變量

    C。 安裝完成后,按照建議我去了mingw64\\bin文件夾mingw64\\bin命名mingw32-makemake

    • 其實,我做了一個拷貝 mingw32-make ,並命名為副本make

    • 這樣做可能是我下面的一些麻煩的來源,雖然我能夠通過它們。 我建議你嘗試重命名文件,而不是像我一樣留下同名文件的兩個副本

獲取XGBOOST源代碼

  1. 啟動Windows命令提示符:開始| Windows系統| 命令提示符

    • 這些步驟也可以在MINGW64中使用,我稍后會切換到這里,但是在這里我試着忠實地記錄我按照我的指示操作的步驟

    一種。 輸入cd c:\\ ,其中c:\\表示要安裝xgboost的位置。 對我來說,它是C:\\...\\Anaconda2\\envs\\py36\\Lib\\site-packages

    輸入git clone --recursive https://github.com/dmlc/xgboost

    • 在顯示下一步的提示之前,這將運行並輸出幾十行輸出

    C。 輸入cd xgboost

    d。 輸入git submodule init

    • 這沒有產生任何輸出並立即再次顯示提示

    輸入git submodule update

    • 這沒有產生任何輸出並立即再次顯示提示

    F。 輸入copy make\\mingw64.mk config.mk

    • 輸出:“1個文件被復制。”

    • 注意:到目前為止,所有命令都在Windows命令提示符下運行。 下一個沒有在那里工作,所以繼續我切換到mingw64終端。 我重新跑步“f”並繼續下一步。

  2. 啟動mingw64終端:開始| MinGW - W64項目| 運行終端

    一種。 輸入cd C:\\Users\\karls\\Anaconda2\\envs\\py36\\Lib\\site-packages\\xgboost

    輸入copy make\\mingw64.mk config.mk

    C。 輸入make -j4

    • 此命令不起作用。 我嘗試了幾十種基於我用Google搜索的變體: make.exemakefilecmakepymakemake.pymingw64-makemingw64-make.exeC:\\Program Files\\mingw-w64\\x86_64-8.1.0-win32-seh-rt_v6-rev0\\mingw64\\bin\\make ,列表繼續。 沒有任何效果。 我嘗試將目錄更改為site-packages\\xgboost其他文件夾。 最后,雖然輸出是可疑的,但是我點擊了以下內容並且能夠繼續。

    d。 將目錄更改為...\\site-packages\\xgboost\\make

    輸入mingw64.mk -j4

    • 這彈出一個“你想怎么打開這個文件?” 對話框,這是我見過的最有希望的輸出。 我沒有打開文件。 命令有用嗎? 我不知道,但我接下來的步驟。

安裝PYTHON包裝

F。 將目錄更改為site-packages\\xgboost\\python-package

G。 輸入python setup.py install

  • 這輸出了幾十行:運行它,創建,寫,讀,復制等。

  • 我還有幾個“警告:找不到匹配的文件......”行。

  • 據推測,任何遺漏都是在更多寫作,安裝,運行,創建,復制,字節編譯,刪除,處理,提取,添加和搜索的后續行中處理的。

  • 最后一行讀作“xgboost的完成處理依賴關系== 0.71”

此時我能夠在jupyter筆記本中導入和使用xgboost,所以我沒有采取任何進一步的措施。 但是,我所遵循的說明(上面鏈接)包括您可能需要的其他步驟。 如果您在我的過程中發現任何錯誤,請告訴我,因為我仍然懷疑我的安裝后來不易受到更新問題的影響(例如,該目錄似乎包含多個位置的相同文件的副本)。

以下是已安裝目錄的幾個屏幕截圖:

xgboost安裝了文件夾文件 xgboost已安裝文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM