title: No module named 'scipy.sparse._sparsetools'
body: <p>I'm dealing with the following error with importing <code>keras</code> library:</p>
  <pre><code>&gt;&gt;&gt; import keras
  
  ModuleNotFoundError                       Traceback (most recent call last)
  &lt;ipython-input-7-c74e2bd4ca71&gt; in &lt;module&gt;()
  ----&gt; 1 import keras
  
  /usr/local/lib/python3.6/dist-packages/keras/__init__.py in &lt;module&gt;()
        1 from __future__ import absolute_import
        2 
  ----&gt; 3 from . import utils
        4 from . import activations
        5 from . import applications
  
  /usr/local/lib/python3.6/dist-packages/keras/utils/__init__.py in &lt;module&gt;()
       24 from .layer_utils import get_source_inputs
       25 from .layer_utils import print_summary
  ---&gt; 26 from .vis_utils import model_to_dot
       27 from .vis_utils import plot_model
       28 from .np_utils import to_categorical
  
  /usr/local/lib/python3.6/dist-packages/keras/utils/vis_utils.py in &lt;module&gt;()
        5 
        6 import os
  ----&gt; 7 from ..models import Model
        8 from ..layers.wrappers import Wrapper
        9 
  
  /usr/local/lib/python3.6/dist-packages/keras/models.py in &lt;module&gt;()
       10 from .engine.input_layer import Input
       11 from .engine.input_layer import InputLayer
  ---&gt; 12 from .engine.training import Model
       13 from .engine.sequential import Sequential
       14 from .engine.saving import save_model
  
  /usr/local/lib/python3.6/dist-packages/keras/engine/__init__.py in &lt;module&gt;()
        6 from .base_layer import Layer
        7 from .network import get_source_inputs
  ----&gt; 8 from .training import Model
  
  /usr/local/lib/python3.6/dist-packages/keras/engine/training.py in &lt;module&gt;()
       13 from .base_layer import Layer
       14 from . import training_utils
  ---&gt; 15 from . import training_arrays
       16 from . import training_generator
       17 from .. import backend as K
  
  /usr/local/lib/python3.6/dist-packages/keras/engine/training_arrays.py in &lt;module&gt;()
        6 
        7 import numpy as np
  ----&gt; 8 from scipy.sparse import issparse
        9 
       10 from .training_utils import batch_shuffle
  
  /usr/lib/python3/dist-packages/scipy/sparse/__init__.py in &lt;module&gt;()
      212 
      213 from .base import *
  --&gt; 214 from .csr import *
      215 from .csc import *
      216 from .lil import *
  
  /usr/lib/python3/dist-packages/scipy/sparse/csr.py in &lt;module&gt;()
       11 from scipy._lib.six import xrange
       12 
  ---&gt; 13 from ._sparsetools import csr_tocsc, csr_tobsr, csr_count_blocks, \
       14         get_csr_submatrix, csr_sample_values
       15 from .sputils import (upcast, isintlike, IndexMixin, issequence,
  
  ModuleNotFoundError: No module named 'scipy.sparse._sparsetools'
  </code></pre>
  <hr />
  <p>I've also checked these posts (<a href="https://stackoverflow.com/questions/55043789/importerror-no-module-named-scipy-sparse">QA-1</a>, <a href="https://stackoverflow.com/questions/32620691/error-importing-scipy-sparse-sparsetools">QA-2</a>), but the problem still remains.</p>
  <hr />
  <p>[<strong>NOTE</strong>]:</p>
  <p><em>Python version: 3.6.9
  Numpy version: 1.17.1
  Keras version: 2.3.0<br />
  Scipy version: 0.17.0<br />
  OS: Ubuntu 16.04</em></p>
  <ul>
  <li>Guys, I don't want to use <code>conda</code> instead of <code>pip</code></li>
  </ul>