1

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

Hurzinger
  • 93
  • 1
  • 8
  • I can run the file in Spyder, but not in the Jupyter Notebook. The original is here https://github.com/slundberg/shap/blob/master/notebooks/tree_explainer/Census%20income%20classification%20with%20XGBoost.ipynb . It´s strange that it does not run through the first block in jupyter. If anybody has an explanation, let me know. – Hurzinger Oct 27 '20 at 20:31
  • Does this answer your question? [pip not installing numba/llvmlite properly within conda environment](https://stackoverflow.com/questions/42033249/pip-not-installing-numba-llvmlite-properly-within-conda-environment) – Hagbard Mar 03 '21 at 20:18

4 Answers4

2

I did both

conda uninstall llvmlite
pip install llvmlite

and

conda uninstall llvmlite
conda install llvmlite

but can't get it work.

I got it work with

conda install -c numba numba
conda install -c numba llvmlite
Jim LK Yu
  • 148
  • 10
  • This worked for me as well (switching `llvmlite` from `conda-forge` to `numba` channel). Here's the log: https://github.com/apcamargo/genomad/issues/10 – O.rka Feb 02 '23 at 18:59
2

You need VC runtime to use Llvmlite

Llvmlite: a lightweight LLVM binding for writing JIT compilers. Requires the Visual C++ Redistributable Packages for Visual Studio 2017.

check this https://learn.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc-170

or for x64 direct link: https://aka.ms/vs/17/release/vc_redist.x64.exe

winndsd
  • 21
  • 1
1

in my case, following actions worked:
conda uninstall llvmlite
and then
conda install llvmlite

Shayan
  • 5,165
  • 4
  • 16
  • 45
0

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)

Ismael EL ATIFI
  • 1,939
  • 20
  • 16