title: Python3.8 cannot install shap, llvmlite, or numba
body: <p>I'm trying to install snap:</p>
  <p><code>sudo -H python3.8 -m pip install shap</code></p>
  <p>but this produces</p>
  <pre><code>  Warning: Can't read registry to find the necessary compiler setting
    Make sure that Python modules winreg, win32api or win32con are installed.
    C compiler: x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC
    
    creating build/temp.linux-x86_64-3.8
    creating build/temp.linux-x86_64-3.8/numba
    compile options: '-I/usr/include/python3.8 -c'
    x86_64-linux-gnu-gcc: numba/_dynfuncmod.c
    In file included from numba/_dynfunc.c:6:0,
                     from numba/_dynfuncmod.c:1:
    numba/_pymodule.h:6:10: fatal error: Python.h: No such file or directory
     #include &lt;Python.h&gt;
              ^~~~~~~~~~
    compilation terminated.
    error: Command &quot;x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.8 -c numba/_dynfuncmod.c -o build/temp.linux-x86_64-3.8/numba/_dynfuncmod.o&quot; failed with exit status 1
    
    ----------------------------------------
    Failed building wheel for numba
    Running setup.py clean for numba
    Running setup.py bdist_wheel for llvmlite ... error
    Complete output from command /usr/bin/python3.8 -u -c &quot;import setuptools, tokenize;__file__='/tmp/pip-build-g2j9vqik/llvmlite/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))&quot; bdist_wheel -d /tmp/tmpeqdilkydpip-wheel- --python-tag cp38:
    running bdist_wheel
    /usr/bin/python3.8 /tmp/pip-build-g2j9vqik/llvmlite/ffi/build.py
    LLVM version... Traceback (most recent call last):
      File &quot;/tmp/pip-build-g2j9vqik/llvmlite/ffi/build.py&quot;, line 105, in main_posix
        out = subprocess.check_output([llvm_config, '--version'])
      File &quot;/usr/lib/python3.8/subprocess.py&quot;, line 411, in check_output
        return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
      File &quot;/usr/lib/python3.8/subprocess.py&quot;, line 489, in run
        with Popen(*popenargs, **kwargs) as process:
      File &quot;/usr/lib/python3.8/subprocess.py&quot;, line 854, in __init__
        self._execute_child(args, executable, preexec_fn, close_fds,
      File &quot;/usr/lib/python3.8/subprocess.py&quot;, line 1702, in _execute_child
        raise child_exception_type(errno_num, err_msg, err_filename)
    FileNotFoundError: [Errno 2] No such file or directory: 'llvm-config'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File &quot;/tmp/pip-build-g2j9vqik/llvmlite/ffi/build.py&quot;, line 191, in &lt;module&gt;
        main()
      File &quot;/tmp/pip-build-g2j9vqik/llvmlite/ffi/build.py&quot;, line 181, in main
        main_posix('linux', '.so')
      File &quot;/tmp/pip-build-g2j9vqik/llvmlite/ffi/build.py&quot;, line 107, in main_posix
        raise RuntimeError(&quot;%s failed executing, please point LLVM_CONFIG &quot;
    RuntimeError: llvm-config failed executing, please point LLVM_CONFIG to the path for llvm-config
    error: command '/usr/bin/python3.8' failed with exit status 1
    
    ----------------------------------------
    Failed building wheel for llvmlite
    Running setup.py clean for llvmlite
  Failed to build shap numba llvmlite
  Installing collected packages: llvmlite, numba, python-dateutil, pandas, slicer, tqdm, shap
    Running setup.py install for llvmlite ... error
      Complete output from command /usr/bin/python3.8 -u -c &quot;import setuptools, tokenize;__file__='/tmp/pip-build-g2j9vqik/llvmlite/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))&quot; install --record /tmp/pip-o_ke5g0q-record/install-record.txt --single-version-externally-managed --compile:
      running install
      running build
      got version from file /tmp/pip-build-g2j9vqik/llvmlite/llvmlite/_version.py {'version': '0.35.0', 'full': 'ea23b026930cc00824c907172383f54c9d438e6b'}
      running build_ext
      /usr/bin/python3.8 /tmp/pip-build-g2j9vqik/llvmlite/ffi/build.py
      LLVM version... Traceback (most recent call last):
        File &quot;/tmp/pip-build-g2j9vqik/llvmlite/ffi/build.py&quot;, line 105, in main_posix
          out = subprocess.check_output([llvm_config, '--version'])
        File &quot;/usr/lib/python3.8/subprocess.py&quot;, line 411, in check_output
          return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
        File &quot;/usr/lib/python3.8/subprocess.py&quot;, line 489, in run
          with Popen(*popenargs, **kwargs) as process:
        File &quot;/usr/lib/python3.8/subprocess.py&quot;, line 854, in __init__
          self._execute_child(args, executable, preexec_fn, close_fds,
        File &quot;/usr/lib/python3.8/subprocess.py&quot;, line 1702, in _execute_child
          raise child_exception_type(errno_num, err_msg, err_filename)
      FileNotFoundError: [Errno 2] No such file or directory: 'llvm-config'
      
      During handling of the above exception, another exception occurred:
      
      Traceback (most recent call last):
        File &quot;/tmp/pip-build-g2j9vqik/llvmlite/ffi/build.py&quot;, line 191, in &lt;module&gt;
          main()
        File &quot;/tmp/pip-build-g2j9vqik/llvmlite/ffi/build.py&quot;, line 181, in main
          main_posix('linux', '.so')
        File &quot;/tmp/pip-build-g2j9vqik/llvmlite/ffi/build.py&quot;, line 107, in main_posix
          raise RuntimeError(&quot;%s failed executing, please point LLVM_CONFIG &quot;
      RuntimeError: llvm-config failed executing, please point LLVM_CONFIG to the path for llvm-config
      error: command '/usr/bin/python3.8' failed with exit status 1
      
      ----------------------------------------
  Command &quot;/usr/bin/python3.8 -u -c &quot;import setuptools, tokenize;__file__='/tmp/pip-build-g2j9vqik/llvmlite/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))&quot; install --record /tmp/pip-o_ke5g0q-record/install-record.txt --single-version-externally-managed --compile&quot; failed with error code 1 in /tmp/pip-build-g2j9vqik/llvmlite/
  </code></pre>
  <p>I'm getting similar errors with <code>numba</code> and <code>llvm</code></p>
  <p>when I have errors like this with CPAN, there is usually a suggestion to install an Ubuntu package like <code>sudo apt install somepackage</code> but I don't see anything like that in the error message.</p>
  <p>From what I can tell, I'm using the latest version of <code>pip</code>:</p>
  <pre><code>con@V:~/Scripts/python3$ sudo -H python3.8 -m pip install --upgrade pip --no-cache-dir
  Requirement already satisfied: pip in /usr/local/lib/python3.8/dist-packages (21.0.1)
  </code></pre>
  <p>how can I alter my system to install <code>shap</code>?</p>