Python 将xgboost导入Anaconda时出现Windows错误126

Python 将xgboost导入Anaconda时出现Windows错误126,python,scikit-learn,anaconda,python-import,xgboost,Python,Scikit Learn,Anaconda,Python Import,Xgboost,虽然我已经使用Python有一段时间了,但我对Anaconda还是比较陌生的,包处理总体上似乎给我带来了很多问题 我正在试着让xgboost启动并与蟒蛇一起运行。我最终使用以下命令安装了它: conda安装-c anaconda py xgboost 在蟒蛇的提示下 当我现在尝试在PyCharm Python控制台中导入xgboost时,出现以下错误: Python 2.7.15 |Anaconda 2.5.0 (64-bit)| (default, May 1 2018, 18:37:09)

虽然我已经使用Python有一段时间了,但我对Anaconda还是比较陌生的,包处理总体上似乎给我带来了很多问题

我正在试着让xgboost启动并与蟒蛇一起运行。我最终使用以下命令安装了它:

conda安装-c anaconda py xgboost

在蟒蛇的提示下

当我现在尝试在PyCharm Python控制台中导入xgboost时,出现以下错误:

Python 2.7.15 |Anaconda 2.5.0 (64-bit)| (default, May  1 2018, 18:37:09) [MSC v.1500 64 bit (AMD64)] on win32

Backend Qt5Agg is interactive backend. Turning interactive mode on.
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 5.0.4\helpers\pydev\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\Users\Richard\Anaconda2\lib\site-packages\xgboost\__init__.py", line 11, in <module>
    from .core import DMatrix, Booster
  File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 5.0.4\helpers\pydev\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\Users\Richard\Anaconda2\lib\site-packages\xgboost\core.py", line 115, in <module>
    _LIB = _load_lib()
  File "C:\Users\Richard\Anaconda2\lib\site-packages\xgboost\core.py", line 109, in _load_lib
    lib = ctypes.cdll.LoadLibrary(lib_path[0])
  File "C:\Users\Richard\Anaconda2\lib\ctypes\__init__.py", line 444, in LoadLibrary
    return self._dlltype(name)
  File "C:\Users\Richard\Anaconda2\lib\ctypes\__init__.py", line 366, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126] The specified module could not be found
win32上的Python 2.7.15 | Anaconda 2.5.0(64位)|(默认,2018年5月1日,18:37:09)[MSC v.1500 64位(AMD64)] 后端Qt5Agg是交互式后端。打开交互模式。 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“C:\Program Files(x86)\JetBrains\PyCharm Community Edition 5.0.4\helpers\pydev\pydev\u import\u hook.py”,第21行,在do\u import中 模块=self.\u系统\u导入(名称,*args,**kwargs) 文件“C:\Users\Richard\Anaconda2\lib\site packages\xgboost\\uuuuu init\uuuuuuu.py”,第11行,在 从.core导入数据矩阵,增压器 文件“C:\Program Files(x86)\JetBrains\PyCharm Community Edition 5.0.4\helpers\pydev\pydev\u import\u hook.py”,第21行,在do\u import中 模块=self.\u系统\u导入(名称,*args,**kwargs) 文件“C:\Users\Richard\Anaconda2\lib\site packages\xgboost\core.py”,第115行,在 _LIB=_load_LIB() 文件“C:\Users\Richard\Anaconda2\lib\site packages\xgboost\core.py”,第109行,在加载库中 lib=ctypes.cdll.LoadLibrary(lib_路径[0]) LoadLibrary中第444行的文件“C:\Users\Richard\Anaconda2\lib\ctypes\\uuuuu init\uuuu.py” 返回自我类型(名称) 文件“C:\Users\Richard\Anaconda2\lib\ctypes\\ uuuu init\ uuuu.py”,第366行,在\uuu init中__ self.\u handle=\u dlopen(self.\u名称,模式) WindowsError:[错误126]找不到指定的模块 我曾在StackOverflow上搜索过类似的问题,但除了找到复杂的答案之外,我没有运气。在没有完全理解的情况下,我觉得实现这些答案并不舒服,而且我不确定这些答案是否适用于我的场景

需要注意的其他事项可能与此相关:

  • 最初,在意识到我的错误之前,我使用Pycharm终端中的
    pip install xgboost
    安装了该软件包

  • 当我最初尝试测试xgboost包时,我(愚蠢地)在一个名为xgboost.py的文件中进行了测试。我已经删除了这个项目。后来我卸载并重新安装了xgboost

  • 我尝试了几件事来解决这个问题,这可能会使事情变得更加复杂。例如,在Anaconda提示符中键入
    conda uninstall xgboost
    时,我从“C:\Users\Richard\Anaconda2”中删除了“xgboost”文件夹


有人能解释一下是什么导致了这个问题吗?这是我关于堆栈溢出的第一个问题,如果我的问题没有完全正确地提出,我表示歉意。

在进一步搜索后,我设法回答了我自己的问题

xgboost(C++)库必须先编译和构建,然后才能用作Python模块。为此,我仔细遵循了本页上的说明:

现在,我认为xgboost运行良好。这是我第一次遇到一个需要这样做的包,因此产生了混乱。希望这能帮助其他有同样问题的人