Проблемы установки XGBoost для Python Anaconda для Windows 10 (18 мая 2018 г.) - PullRequest
0 голосов
/ 19 мая 2018

За последние несколько дней я пытался установить XGBoost, используя инструкции, найденные по адресу

Некоторые инструкции были простыми (например,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.

Полный возврат ниже.

Есть ли исправление для этого?Лучший способ установить?Я хотел бы продолжить введение Дэна Беккера в ML на kaggle!

VERSIONS:

 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`

TRACEBACK:

---------------------------------------------------------------------------
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

EDIT 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, Enter и модуль был установлен.Я не копировал результаты, но это указывало на успех - но модуль не был найден, когда я пытался импортировать его в записную книжку.

Вот результаты, когда я снова предпринял эти шаги сегодня:

(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\site-packages\xgboost

Anaconda2\envs\py36\Lib\site-packages\xgboost__pycache__

РЕДАКТИРОВАТЬ 2 Пример 2: XGBOOST 0.71 A

XGBOOST 0.71 B

XGBOOST 0.71 C

1 Ответ

0 голосов
/ 28 мая 2018

Я обнаружил процесс установки, который работает в ноутбуке jupyter с Anaconda 4.3 для python 3.6.4 на Windows 10 win-64.Ниже я изложу процесс, которому я следовал.Внизу я включаю пару скриншотов установленных папок и файлов.Если у вас есть какие-либо предложения по улучшению этого процесса, сообщите мне.

Этот процесс основан на инструкциях http://adataanalyst.com/machine-learning/installing-xgboost-for-windows-10/, которые, в свою очередь, получены из http://stackoverflow.com/questions/33749735/how-to-install-xgboost-package-in-python-windows-platform. * 1007.*

PREP

  1. Если у вас нет git, установите его и добавьте в свой PATH.

  2. Как часть предыдущегопопытки установить xgboost Недавно я обновил numpy и scipy до последних версий

  3. Загрузите и установите MinGW-64: http://sourceforge.net/projects/mingw-w64/

    a.В диалоговом окне «Настройка» установите для архитектуры значение «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

б.Введите 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: Start |Проект MinGW - W64 |Запустите терминал

a.Введите cd C:\Users\karls\Anaconda2\envs\py36\Lib\site-packages\xgboost

b.Введите copy make\mingw64.mk config.mk

c.Введите make -j4

  • Эта команда не работает.Я попробовал десятки вариантов, основанных на предложенном мною гугле: make.exe, makefile, cmake, pymake, make.py, mingw64-make, mingw64-make.exe, C:\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

  • Это выскочило "Как вы хотите открыть этот файл?"диалог, который был самым обнадеживающим результатом, который я когда-либо видел.Я не открыл файл.Команда принесла пользу?Понятия не имею, но я перешел к следующим шагам.

УСТАНОВИТЬ ПАЙТОН ПИТОНА

f.Измените каталог на site-packages\xgboost\python-package

g.Введите python setup.py install

  • Это выводит несколько десятков строк: запуск этого, создание этого, запись и чтение и копирование и т. Д.

  • Я такжебыло несколько строк «предупреждение: не найдено файлов, соответствующих ...».

  • Предположительно, все, что пропало, было рассмотрено в следующих строках: написание, установка, запуск, создание, копирование, байтовая компиляция, удаление, обработка, извлечение, добавление и поиск

  • Последняя строка гласила: «Завершенные зависимости обработки для xgboost == 0,71»

На данный момент я смог импортировать и использовать xgboost в блокноте Jupyter, поэтому я не предпринимал никаких дальнейших шагов,Однако инструкции, которым я следовал (ссылка выше), включали дополнительные шаги, которые вы можете счесть необходимыми.Пожалуйста, дайте мне знать, если вы обнаружите какие-либо ошибки в моем процессе, так как я все еще подозреваю, что моя установка не подвержена проблемам с обновлениями позже (например, каталог, кажется, содержит копии одних и тех же файлов в нескольких местах).

Ниже приведена пара скриншотов установленных каталогов:

xgboost installed folder files xgboost installed files

...