在过去的几天里,我尝试使用位于以下位置的说明来安装XGBoost

  • http://xgboost.readthedocs.io/en/latest/build.html
  • XGBoost Installation in windows
  • https://github.com/dmlc/xgboost/tree/master/python-package
  • https://www.ibm.com/developerworks/community/blogs/jfp/entry/Installing_XGBoost_For_Anaconda_on_Windows?lang=en
  • https://anaconda.org/conda-forge/xgboost
  • http://www.picnet.com.au/blogs/guido/2016/09/22/xgboost-windows-x64-binaries-for-download/

  • 有些指令是直接的(例如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关于kaggle的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
  • 启动Anaconda提示符
  • 激活py36
  • 运行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,然后输入Enter,模块已安装。我没有复制结果,但是它表明成功了-但是当我尝试将其导入笔记本时找不到该moducle。

    这是我今天再次采取这些步骤时的结果:
    (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>
    

    python - Python Anaconda Windows 10的XGBoost安装问题(2018年5月18日)-LMLPHP

    python - Python Anaconda Windows 10的XGBoost安装问题(2018年5月18日)-LMLPHP

    编辑2
    范例2:
    python - Python Anaconda Windows 10的XGBoost安装问题(2018年5月18日)-LMLPHP

    python - Python Anaconda Windows 10的XGBoost安装问题(2018年5月18日)-LMLPHP

    python - Python Anaconda Windows 10的XGBoost安装问题(2018年5月18日)-LMLPHP

    最佳答案

    我发现在Windows 10 win-64上使用 python 3.6.4的Anaconda 4.3在jupyter笔记本中似乎可以正常工作的安装过程。在下面,我阐明了我遵循的过程。在底部,我提供了一些已安装的文件夹和文件的屏幕截图。如果您对如何改进此过程有任何建议,请告诉我。

    该过程是根据http://adataanalyst.com/machine-learning/installing-xgboost-for-windows-10/的指令改编的,该指令又从http://stackoverflow.com/questions/33749735/how-to-install-xgboost-package-in-python-windows-platform派生。

    准备

  • 如果您没有git,请安装它并将其添加到PATH中。
  • 作为先前尝试安装xgboost的一部分,我最近将numpy和scipy更新为最新版本
  • 下载并安装MinGW-64:http://sourceforge.net/projects/mingw-w64/

    一种。在“设置”对话框中,将“体系结构”设置为“x86_64”(是i686),将“线程”设置为“win32”(是posix)。

    b。我将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文件夹,并将mingw32-make重命名为make
  • 实际上,我制作了mingw32-make的副本,并将副本命名为make
  • 这样做可能是下面我遇到的一些麻烦的根源,尽管我能够克服它们。我建议您尝试重命名该文件,而不是像
  • 一样使用相同的名称保留两个文件的两个副本

    获取XGBOOST源代码
  • 启动Windows命令提示符: Windows系统|命令提示符
  • 这些步骤也可以在MINGW64中使用,稍后我将切换到该位置,但是在这里,我尝试忠实记录按照我的指示进行操作时所采取的步骤。

    一种。输入cd c:\,其中c:\代表您要安装xgboost的位置。对我来说是C:\...\Anaconda2\envs\py36\Lib\site-packages
    b。输入git clone --recursive https://github.com/dmlc/xgboost
  • 在显示下一步
  • 的提示之前,它将运行并输出几十行输出

    C。输入cd xgboost
    d。输入git submodule init
  • 这没有产生任何输出,并立即再次显示提示

  • e。输入git submodule update
  • 这没有产生任何输出,并立即再次显示提示

  • F。输入copy make\mingw64.mk config.mk
  • 输出:“已复制1个文件。”
  • 注意:至此,所有命令均已在Windows命令提示符下运行。下一个在那儿不起作用,所以继续前进,我切换到mingw64终端。我重新执行步骤“f”,然后继续下一步。
  • 启动mingw64终端:开始| MinGW--W64项目|运行终端

    一种。输入cd C:\Users\karls\Anaconda2\envs\py36\Lib\site-packages\xgboost
    b。输入copy make\mingw64.mk config.mk
    C。输入make -j4
  • 此命令无效。我根据谷歌的建议尝试了数十种变体: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
    e。输入mingw64.mk -j4
  • 这会弹出“您想如何打开此文件?”对话框,这是我迄今为止看到的最有希望的输出。我没有打开文件。该命令对您有好处吗?我不知道,但是我继续下一步。

  • 安装PYTHON包装

    F。将目录更改为site-packages\xgboost\python-package
    G。输入python setup.py install
  • 这将输出几十行:运行,创建,编写,读取和复制等。
  • 我也有几条“警告:找不到匹配的文件...”行。
  • 大概在所有后续编写,安装,运行,创建,复制,字节编译,删除,处理,提取,添加和搜索
  • 的行中处理了丢失的所有内容
  • 最后一行显示为“xgboost == 0.71的已完成处理依赖性”

  • 至此,我已经能够在jupyter笔记本中导入和使用xgboost,因此我没有采取任何进一步的措施。但是,我遵循的说明(上面已链接)包括您可能会发现需要的其他步骤。如果您在处理过程中遇到任何错误,请告诉我,因为我仍然怀疑我的安装对以后的更新问题不敏感(例如,该目录似乎在多个位置包含相同文件的副本)。

    以下是已安装目录的几个屏幕截图:

    python - Python Anaconda Windows 10的XGBoost安装问题(2018年5月18日)-LMLPHP
    python - Python Anaconda Windows 10的XGBoost安装问题(2018年5月18日)-LMLPHP

    10-06 07:12