
Instalé xgboost exitosamente usando pip para Python 2.7.16 (instalé esta versión de Python usando Homebrew en macOS High Sierra). Mi problema es que no puedo importar xgboost en Python, según el siguiente mensaje de error:
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']
Me aseguré de que tanto mi versión de Python como mi sistema operativo sean de 64 bits, por lo que el problema definitivamente no es la segunda "causa probable". También estoy bastante seguro de que tengo OpenMP instalado: busco instrucciones, en mi caso lo haría brew install llvm
y la instalación fue exitosa. Tampoco estoy seguro de por qué parece que no se puede encontrar /usr/local/lib/python2.7/site-packages/xgboost/./lib/libxgboost.dylib
, ya que puedo cd
ingresar a ese directorio y verlo libxgboost.dylib
bien. Parece que más adelante en el mensajehizo¿Lo encuentras pero aún arroja un error? ¿Qué está pasando exactamente aquí y qué puedo hacer para corregir este error?
Respuesta1
¿Has instalado gcc? Puedes probar los siguientes pasos.
brew install gcc@8
entonces hazlo
brew switch gcc 8.3.0_2
o la versión instalada entonces finalmente
brew link --overwrite gcc
Esto parecía haber solucionado mi problema.
Respuesta2
Su intérprete de Python dice que está en Python 2.7, pero segúnproyecto pypi xgboost, requiere Python 3.8 o superior.