无法在 Python 中导入 xgboost

无法在 Python 中导入 xgboost

我已经使用 pip 成功安装了适用于 Python 2.7.16 的 xgboost(我在 macOS High Sierra 上使用 Homebrew 安装了此 Python 版本)。我的问题是我无法在 Python 中导入 xgboost,如以下错误消息所示:

mac-128644:~ user$ python
Python 2.7.16 (default, Apr 12 2019, 15:32:52) 
[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.11.45.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import xgboost
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/xgboost/__init__.py", line 11, in <module>
    from .core import DMatrix, Booster
  File "/usr/local/lib/python2.7/site-packages/xgboost/core.py", line 163, in <module>
    _LIB = _load_lib()
  File "/usr/local/lib/python2.7/site-packages/xgboost/core.py", line 154, in _load_lib
    'Error message(s): {}\n'.format(os_error_list))
xgboost.core.XGBoostError: XGBoost Library (libxgboost.dylib) could not be loaded.
Likely causes:
  * OpenMP runtime is not installed (vcomp140.dll or libgomp-1.dll for Windows, libgomp.so for UNIX-like OSes)
  * You are running 32-bit Python on a 64-bit OS
Error message(s): ['dlopen(/usr/local/lib/python2.7/site-packages/xgboost/./lib/libxgboost.dylib, 6): Library not loaded: /usr/local/opt/gcc/lib/gcc/8/libgomp.1.dylib\n  Referenced from: /usr/local/lib/python2.7/site-packages/xgboost/./lib/libxgboost.dylib\n  Reason: no suitable image found.  Did find:\n\t/usr/local/lib/python2.7/site-packages/xgboost/./lib/libxgboost.dylib/libgomp.1.dylib: stat() failed with errno=20']

我已经确定我的 Python 版本和操作系统都是 64 位的,所以问题肯定不是第二个“可能的原因”。我也非常确定我已经安装了 OpenMP:查找说明,对于我的情况,我会这样做,brew install llvm安装成功。我也不确定为什么它似乎找不到/usr/local/lib/python2.7/site-packages/xgboost/./lib/libxgboost.dylib,因为我可以cd进入该目录并看到libxgboost.dylib一切正常。看起来稍后在消息中做过找到它,但仍然会抛出错误?这里到底发生了什么?我该怎么做才能修复此错误?

答案1

你安装了gcc吗?你可以尝试以下步骤。

brew install gcc@8 然后做

brew switch gcc 8.3.0_2或安装的版本最后

brew link --overwrite gcc这似乎已经解决了我的问题。

答案2

你的 Python 解释器显示你使用的是 Python 2.7,但是pypi xgboost 项目,它需要Python 3.8或更高版本。

相关内容