Search code examples
pythonpython-3.xmachine-learningfeature-extractionshap

OSError: Could not load shared object file: llvmlite.dll (SHAP related. What could be missing?)


I want to use SHAP with Anaconda. Prequisites: llvmlite is installed:

  • pip install llvmlite Requirement already satisfied: llvmlite in c:\users...\anaconda3\lib\site-packages (0.34.0)

However, I get the error message in the supject, that llvmlite.dll could not be loaded:


from sklearn.model_selection import train_test_split

import xgboost

import shap

import numpy as np

import matplotlib.pylab as pl

​
# print the JS visualization code to the notebook

shap.initjs()


---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-1-1cffb01788c0> in <module>
      1 from sklearn.model_selection import train_test_split
      2 import xgboost
----> 3 import shap
      4 import numpy as np
      5 import matplotlib.pylab as pl

~\Anaconda3\lib\site-packages\shap\__init__.py in <module>
     10     warnings.warn("As of version 0.29.0 shap only supports Python 3 (not 2)!")
     11 
---> 12 from ._explanation import Explanation
     13 
     14 # explainers

~\Anaconda3\lib\site-packages\shap\_explanation.py in <module>
      8 from slicer import Slicer, Alias
      9 # from ._order import Order
---> 10 from .utils._general import OpChain
     11 
     12 # slicer confuses pylint...

~\Anaconda3\lib\site-packages\shap\utils\__init__.py in <module>
----> 1 from ._clustering import hclust_ordering, partition_tree, partition_tree_shuffle, delta_minimization_order, hclust
      2 from ._general import approximate_interactions, potential_interactions, sample, safe_isinstance, assert_import, record_import_error
      3 from ._general import shapley_coefficients, convert_name, format_value, ordinal_str, OpChain
      4 from ._show_progress import show_progress
      5 from ._masked_model import MaskedModel, make_masks

~\Anaconda3\lib\site-packages\shap\utils\_clustering.py in <module>
      2 import scipy as sp
      3 from scipy.spatial.distance import pdist
----> 4 from numba import jit
      5 import sklearn
      6 import warnings

~\Anaconda3\lib\site-packages\numba\__init__.py in <module>
     12 del get_versions
     13 
---> 14 from numba.core import config
     15 from numba.testing import _runtests as runtests
     16 from numba.core import types, errors

~\Anaconda3\lib\site-packages\numba\core\config.py in <module>
     14 
     15 
---> 16 import llvmlite.binding as ll
     17 
     18 IS_WIN32 = sys.platform.startswith('win32')

~\Anaconda3\lib\site-packages\llvmlite\binding\__init__.py in <module>
      2 Things that rely on the LLVM library
      3 """
----> 4 from .dylib import *
      5 from .executionengine import *
      6 from .initfini import *

~\Anaconda3\lib\site-packages\llvmlite\binding\dylib.py in <module>
      1 from ctypes import c_void_p, c_char_p, c_bool, POINTER
      2 
----> 3 from llvmlite.binding import ffi
      4 from llvmlite.binding.common import _encode_string
      5 

~\Anaconda3\lib\site-packages\llvmlite\binding\ffi.py in <module>
    151         break
    152 else:
--> 153     raise OSError("Could not load shared object file: {}".format(_lib_name))
    154 
    155 

OSError: Could not load shared object file: llvmlite.dll

Does anybody have an idea what the root cause may be and whatelse I could try?

THx, Marcus


Solution

  • I had the same llvmlite missing DLL issue on Windows 10 with Python 3.8 in jupyter notebook when trying to import numba and solved it by installing with pip instead of conda :

    conda uninstall llvmlite
    pip install llvmlite
    

    If it still does not wortk try installing llvmlite from wheel by downloading your wheel on this page :
    https://www.lfd.uci.edu/~gohlke/pythonlibs/#llvmlite
    pip install llvmlite-0.34.0-cp38-cp38-win_amd64.whl (replace with your wheel)