我想在Anaconda中使用SHAP。先决条件:已安装llvmlite:
- pip install llvmlite已满足要求:llvmlite已安装在c:\users…\anaconda3\lib\site-packages (0.34.0)
然而,我收到了主题中的错误消息,无法加载llvmlite.dll:
from sklearn.model_selection import train_test_splitimport xgboostimport shapimport numpy as npimport matplotlib.pylab as pl# 将JS可视化代码打印到笔记本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
有谁知道可能的原因是什么?我还可以尝试些什么吗?
谢谢,Marcus
回答:
我在Windows 10上使用Python 3.8的jupyter笔记本时,尝试导入numba时也遇到了同样的llvmlite缺少DLL的问题,通过使用pip而不是conda安装解决了这个问题:
conda uninstall llvmlitepip install llvmlite
如果还是不行,可以尝试从这个页面下载适合你的wheel文件来安装llvmlite:
https://www.lfd.uci.edu/~gohlke/pythonlibs/#llvmlitepip install llvmlite-0.34.0-cp38-cp38-win_amd64.whl
(替换为你下载的wheel文件)