Search code examples
pythonpipnumba

Can't install numba on Python 3.10


Python 3.10 on Mac running OS 11.6.1

I uninstalled Python 3.9 from my machine and upgraded to version 3.10. No problems installing standard packages such as pandas, scipy, etc. However one package, epycom, requires numba.

When I enter pip3 install numba, I receive the lengthy error message below with the key phrase FileNotFoundError: [Errno 2] No such file or directory: 'llvm-config'

Wondering if I should uninstall 3.10 and go back to 3.9?

Collecting numba
  Using cached numba-0.51.2.tar.gz (2.1 MB)
  Preparing metadata (setup.py) ... done
Collecting llvmlite<0.35,>=0.34.0.dev0
  Using cached llvmlite-0.34.0.tar.gz (107 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: numpy>=1.15 in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from numba) (1.22.0)
Requirement already satisfied: setuptools in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from numba) (58.1.0)
Using legacy 'setup.py install' for numba, since package 'wheel' is not installed.
Using legacy 'setup.py install' for llvmlite, since package 'wheel' is not installed.
Installing collected packages: llvmlite, numba
    Running setup.py install for llvmlite ... error
    ERROR: Command errored out with exit status 1:
     command: /Library/Frameworks/Python.framework/Versions/3.10/bin/python3.10 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/6j/xqx91xb15wl81pcnf33255bct7pzn4/T/pip-install-42hw6q4a/llvmlite_a0abee749e71467a998628e47a3a1a24/setup.py'"'"'; __file__='"'"'/private/var/folders/6j/xqx91xb15wl81pcnf33255bct7pzn4/T/pip-install-42hw6q4a/llvmlite_a0abee749e71467a998628e47a3a1a24/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/6j/xqx91xb15wl81pcnf33255bct7pzn4/T/pip-record-6u_7985j/install-record.txt --single-version-externally-managed --compile --install-headers /Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/llvmlite
         cwd: /private/var/folders/6j/xqx91xb15wl81pcnf33255bct7pzn4/T/pip-install-42hw6q4a/llvmlite_a0abee749e71467a998628e47a3a1a24/
    Complete output (29 lines):
    running install
    running build
    got version from file /private/var/folders/6j/xqx91xb15wl81pcnf33255bct7pzn4/T/pip-install-42hw6q4a/llvmlite_a0abee749e71467a998628e47a3a1a24/llvmlite/_version.py {'version': '0.34.0', 'full': 'c5889c9e98c6b19d5d85ebdd982d64a03931f8e2'}
    running build_ext
    /Library/Frameworks/Python.framework/Versions/3.10/bin/python3.10 /private/var/folders/6j/xqx91xb15wl81pcnf33255bct7pzn4/T/pip-install-42hw6q4a/llvmlite_a0abee749e71467a998628e47a3a1a24/ffi/build.py
    LLVM version... Traceback (most recent call last):
      File "/private/var/folders/6j/xqx91xb15wl81pcnf33255bct7pzn4/T/pip-install-42hw6q4a/llvmlite_a0abee749e71467a998628e47a3a1a24/ffi/build.py", line 105, in main_posix
        out = subprocess.check_output([llvm_config, '--version'])
      File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py", line 420, in check_output
        return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
      File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py", line 501, in run
        with Popen(*popenargs, **kwargs) as process:
      File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py", line 966, in __init__
        self._execute_child(args, executable, preexec_fn, close_fds,
      File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py", line 1842, 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 "/private/var/folders/6j/xqx91xb15wl81pcnf33255bct7pzn4/T/pip-install-42hw6q4a/llvmlite_a0abee749e71467a998628e47a3a1a24/ffi/build.py", line 191, in <module>
        main()
      File "/private/var/folders/6j/xqx91xb15wl81pcnf33255bct7pzn4/T/pip-install-42hw6q4a/llvmlite_a0abee749e71467a998628e47a3a1a24/ffi/build.py", line 185, in main
        main_posix('osx', '.dylib')
      File "/private/var/folders/6j/xqx91xb15wl81pcnf33255bct7pzn4/T/pip-install-42hw6q4a/llvmlite_a0abee749e71467a998628e47a3a1a24/ffi/build.py", line 107, in main_posix
        raise RuntimeError("%s failed executing, please point LLVM_CONFIG "
    RuntimeError: llvm-config failed executing, please point LLVM_CONFIG to the path for llvm-config
    error: command '/Library/Frameworks/Python.framework/Versions/3.10/bin/python3.10' failed with exit code 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /Library/Frameworks/Python.framework/Versions/3.10/bin/python3.10 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/6j/xqx91xb15wl81pcnf33255bct7pzn4/T/pip-install-42hw6q4a/llvmlite_a0abee749e71467a998628e47a3a1a24/setup.py'"'"'; __file__='"'"'/private/var/folders/6j/xqx91xb15wl81pcnf33255bct7pzn4/T/pip-install-42hw6q4a/llvmlite_a0abee749e71467a998628e47a3a1a24/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/6j/xqx91xb15wl81pcnf33255bct7pzn4/T/pip-record-6u_7985j/install-record.txt --single-version-externally-managed --compile --install-headers /Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/llvmlite Check the logs for full command output.
fishbacp@fishbacpK0ML85 ~ % pip3 install llvm
ERROR: Could not find a version that satisfies the requirement llvm (from versions: none)
ERROR: No matching distribution found for llvm

Solution

  • Based on the historical issues submited on Github numba is slow in adoption of a new Python version; my guess would be that it currently does not support Python 3.10.

    Reference:

    https://github.com/numba/llvmlite/issues/621

    https://github.com/numba/llvmlite/issues/531