user3064366
user3064366

Reputation: 1577

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

Upvotes: 27

Views: 83560

Answers (7)

Fırat Kızılırmak
Fırat Kızılırmak

Reputation: 11

as of today I am able to run numba==0.57.1 with numpy==1.21.4

Upvotes: 0

David Juraj
David Juraj

Reputation: 371

I believe the numba's dependency with numpy 1.22 have been resolved in the most recent version. Try upgrading numba (works for me with numpy 1.22):

pip install numba --upgrade

Upvotes: 27

user20014204
user20014204

Reputation:

I had the same issue. You have to restart the Jupyter kernel after downgrading Numpy.

You can downgrade using:

pip install numpy==[version]

Here,

pip install numpy==1.20

Upvotes: 1

Saifu
Saifu

Reputation: 118

I had same issue, these steps has worked for me.
1.

pip3 install numpy==1.21.4
pip3 install pip install numba==0.53.0
pip3 install librosa
or 
sudo apt install librosa

For more understanding please visit Click here
I hope this helps you.

Upvotes: 6

8Simon8
8Simon8

Reputation: 169

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

Upvotes: 4

ah bon
ah bon

Reputation: 10031

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

pip install numba==0.53

Upvotes: 22

Manaf Sheyyab
Manaf Sheyyab

Reputation: 11

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

Upvotes: 1

Related Questions