'Numba needs NumPy 1.20 or less for shapley import

I am trying to import shap. I am getting the following bug. I installed the lower version of NumPy still the problem is not solved. Thank you!

 import shap


ImportError                               Traceback (most recent call last)
/tmp/ipykernel_22681/948769371.py in <module>
----> 1 import shap

~/jupyter/environment/lib/python3.8/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, Cohorts
     13 
     14 # explainers

~/jupyter/environment/lib/python3.8/site-packages/shap/_explanation.py in <module>
     10 from slicer import Slicer, Alias, Obj
     11 # from ._order import Order
---> 12 from .utils._general import OpChain
     13 
     14 # slicer confuses pylint...

~/jupyter/environment/lib/python3.8/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

~/jupyter/environment/lib/python3.8/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

~/jupyter/environment/lib/python3.8/site-packages/numba/__init__.py in <module>
    196 
    197 _ensure_llvm()
--> 198 _ensure_critical_deps()
    199 
    200 # we know llvmlite is working as the above tests passed, import it now as SVML

~/jupyter/environment/lib/python3.8/site-packages/numba/__init__.py in _ensure_critical_deps()
    136         raise ImportError("Numba needs NumPy 1.17 or greater")
    137     elif numpy_version > (1, 20):
--> 138         raise ImportError("Numba needs NumPy 1.20 or less")
    139 
    140     try:

ImportError: Numba needs NumPy 1.20 or less


Solution 1:[1]

I use Numpy==1.21.4 and Numba==0.53.0, it works:

pip install numba==0.53

Solution 2:[2]

I used pip install shap instead of conda install -c conda-forge shap and it worked for me.

Solution 3:[3]

I ran into the same issue. the solution is to install numpy 1.18.1 with numpa 0.48.0 and it should work

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 ah bon
Solution 2 Miguel Conde
Solution 3 Manaf Sheyyab