简体   繁体   中英

Getting this simple problem while importing Xgboost on Jupyter notebook

Everything was running fine in Jupyter notebook until I imported Xgboost. As soon as I import it I get the problem below. I have Python 3.8 and have installed it via terminal pip3 method, what should I do next?

---------------------------------------------------------------------------
XGBoostError                              Traceback (most recent call last)
<ipython-input-17-a81e4513ce38> in <module>
      1 # Let's Learn about the stock market using XGBOOST
      2 
----> 3 import xgboost as xgb

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/xgboost/__init__.py in <module>
      9 import warnings
     10 
---> 11 from .core import DMatrix, DeviceQuantileDMatrix, Booster
     12 from .training import train, cv
     13 from . import rabit  # noqa

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/xgboost/core.py in <module>
    173 
    174 # load the XGBoost library globally
--> 175 _LIB = _load_lib()
    176 
    177 

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/xgboost/core.py in _load_lib()
    156     if not lib_success:
    157         libname = os.path.basename(lib_paths[0])
--> 158         raise XGBoostError(
    159             'XGBoost Library ({}) could not be loaded.\n'.format(libname) +
    160             'Likely causes:\n' +

XGBoostError: XGBoost Library (libxgboost.dylib) could not be loaded.
Likely causes:
  * OpenMP runtime is not installed (vcomp140.dll or libgomp-1.dll for Windows, 
       libomp.dylib for Mac OSX, libgomp.so for Linux and other UNIX-like OSes). 
       Mac OSX users: Run `brew install libomp` to install OpenMP runtime.
  * You are running 32-bit Python on a 64-bit OS
Error message(s): ['dlopen(/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/xgboost/lib/libxgboost.dylib, 6): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib\n  Referenced from: /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/xgboost/lib/libxgboost.dylib\n  Reason: image not found']

I solved it by installing libomp.dylib for Mac OSX. The answer was there all along.

You can do it by running the following command:

brew install libomp

for Mac OSX, just run 'brew install libomp' 在此处输入图像描述

You must install brew on your MAC first: https://brew.sh/ (Brew might take a moment to install) Then run the following in your terminal: brew install libomp

If you use anaconda, you can use:

conda install py-xgboost

You can solve it as below if you have Python 3.7 or higher:

!brew install libomp

Below command worked for me if you are using anaconda

conda install -c conda-forge xgboost

If brew install libomp doesn't work, libomp might be installed to a different place.

xgboost needs libomp.dylib under usr/local/opt/libomp/lib/libomp.dylib , but brew may install it under /opt/brew/Cellar/libomp/11.0.1/lib/libomp.dylib . You can copy yours to the xgboost required path.

The cause is that xgboost is looking for the dynamic library at the following locations, which is not where it might be installed to.

Reason: tried: '/libomp.dylib' (no such file), '/usr/local/opt/libomp/lib/libomp.dylib' (no such file), '/libomp.dylib' (no such file), '/Users/michaeltu/third-party/lib/libomp.dylib' (no such file)"]

First, brew install libomp if you haven't done so.

After that, check where brew installed the library.

$ brew info libomp
libomp: stable 12.0.0 (bottled)
LLVM's OpenMP runtime library
https://openmp.llvm.org/
/opt/brew/Cellar/libomp/12.0.0 (9 files, 1.5MB) *

We see it installed it here:

$ ls /opt/brew/Cellar/libomp/12.0.0/lib/
libomp.a    libomp.dylib

Make a simlink (based on the version of libomp you installed):

$ mkdir -p /usr/local/opt/libomp/
$ ln -s /opt/brew/Cellar/libomp/12.0.0/lib /usr/local/opt/libomp/lib

Try importing it again. This was able to resolve my issue.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM