OSError:无法加载共享对象文件:llvmlite.dll与SHAP相关可能丢失什么?

问题描述

我想将SHAP与Anaconda一起使用。 先决条件: llvmlite已安装:

  • pip安装llvmlite 已经满足要求:c:\ users ... \ anaconda3 \ lib \ site-packages(0.34.0)中的llvmlite

但是,我在错误提示中收到错误消息,提示无法加载llvmlite.dll:


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

有人知道根本原因可能是什么,我还能尝试什么?

THx, 马库斯

解决方法

当尝试导入numba并通过使用pip而不是conda进行安装来解决该问题时,在jupyter笔记本中使用python 3.8的Windows 10上,我在llvmlite缺少DLL的问题相同:

conda uninstall llvmlite
pip install llvmlite

如果仍然无法正常运行,请尝试通过在此页面上下载车轮从车轮安装llvmlite:
https://www.lfd.uci.edu/~gohlke/pythonlibs/#llvmlite
pip install llvmlite-0.34.0-cp38-cp38-win_amd64.whl(用轮子代替)