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

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

我想在 Anaconda 中使用 SHAP。 先决条件: 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

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

谢谢, 马库斯

我在 jupyter notebook 中尝试导入 numba 时在 Windows 10 和 Python 3.8 上遇到了相同的 llvmlite 缺少 DLL 问题,并通过使用 pip 而不是 conda 安装解决了这个问题:

conda uninstall llvmlite
pip install llvmlite

如果仍然无法解决问题,请尝试通过在此页面下载您的 wheel 从 wheel 安装 llvmlite :
https://www.lfd.uci.edu/~gohlke/pythonlibs/#llvmlite
pip install llvmlite-0.34.0-cp38-cp38-win_amd64.whl(换成你的轮子)

就我而言,以下操作有效:
conda uninstall llvmlite
然后
conda install llvmlite

我都做了

conda uninstall llvmlite
pip install llvmlite

conda uninstall llvmlite
conda install llvmlite

但无法正常工作。

我得到了

conda install -c numba numba
conda install -c numba llvmlite