在 Ubuntu 18.04 上安装 numba 时 LLVM 版本不匹配

LLVM version mismatch when installing numba on Ubuntu 18.04

我正在尝试在 Ubuntu 18.04 上安装 Python 软件包“numba”。但是,它失败了,堆栈跟踪:

Requirement already satisfied: matplotlib>=3.1.1 in ./lib/python3.6/site-packages (from m2md==0.0.0)
Collecting numba>=0.45.1 (from m2md==0.0.0)
  Using cached https://files.pythonhosted.org/packages/5e/81/6fd1dd064bcf71a79da109e8966a39e2da61d68bf0bd1e0839fa997f8c41/numba-0.51.2.tar.gz
Requirement already satisfied: numpy>=1.17.2 in ./lib/python3.6/site-packages (from m2md==0.0.0)
Requirement already satisfied: cycler>=0.10 in ./lib/python3.6/site-packages (from matplotlib>=3.1.1->m2md==0.0.0)
Requirement already satisfied: certifi>=2020.06.20 in ./lib/python3.6/site-packages (from matplotlib>=3.1.1->m2md==0.0.0)
Requirement already satisfied: kiwisolver>=1.0.1 in ./lib/python3.6/site-packages (from matplotlib>=3.1.1->m2md==0.0.0)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.3 in ./lib/python3.6/site-packages (from matplotlib>=3.1.1->m2md==0.0.0)
Requirement already satisfied: pillow>=6.2.0 in ./lib/python3.6/site-packages (from matplotlib>=3.1.1->m2md==0.0.0)
Requirement already satisfied: python-dateutil>=2.1 in ./lib/python3.6/site-packages (from matplotlib>=3.1.1->m2md==0.0.0)
Collecting llvmlite<0.35,>=0.34.0.dev0 (from numba>=0.45.1->m2md==0.0.0)
  Using cached https://files.pythonhosted.org/packages/0b/96/07bfa93a103fb9e3e9ae7f9f7c6687ae714aee66b6f3000da3fad71e0aa2/llvmlite-0.34.0.tar.gz
Requirement already satisfied: setuptools in ./lib/python3.6/site-packages (from numba>=0.45.1->m2md==0.0.0)
Requirement already satisfied: six in ./lib/python3.6/site-packages (from cycler>=0.10->matplotlib>=3.1.1->m2md==0.0.0)
Building wheels for collected packages: numba, llvmlite
  Running setup.py bdist_wheel for numba ... error
  Complete output from command /home/leni/leni2/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-8cn56k5l/numba/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpugw8_3lfpip-wheel- --python-tag cp36:
  TBB not found
  Using OpenMP from: True
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for numba
  Running setup.py clean for numba
  Running setup.py bdist_wheel for llvmlite ... error
  Complete output from command /home/leni/leni2/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-8cn56k5l/llvmlite/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpadfb49uppip-wheel- --python-tag cp36:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for llvmlite
  Running setup.py clean for llvmlite
Failed to build numba llvmlite
Installing collected packages: llvmlite, numba, m2md
  Running setup.py install for llvmlite ... error
    Complete output from command /home/leni/leni2/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-8cn56k5l/llvmlite/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-uibprf7r-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/leni/leni2/include/site/python3.6/llvmlite:
    running install
    running build
    got version from file /tmp/pip-build-8cn56k5l/llvmlite/llvmlite/_version.py {'version': '0.34.0', 'full': 'c5889c9e98c6b19d5d85ebdd982d64a03931f8e2'}
    running build_ext
    /home/leni/leni2/bin/python3 /tmp/pip-build-8cn56k5l/llvmlite/ffi/build.py
    LLVM version... 6.0.0

    Traceback (most recent call last):
      File "/tmp/pip-build-8cn56k5l/llvmlite/ffi/build.py", line 191, in <module>
        main()
      File "/tmp/pip-build-8cn56k5l/llvmlite/ffi/build.py", line 181, in main
        main_posix('linux', '.so')
      File "/tmp/pip-build-8cn56k5l/llvmlite/ffi/build.py", line 143, in main_posix
        raise RuntimeError(msg)
    RuntimeError: Building llvmlite requires LLVM 10.0.x or 9.0.x, got '6.0.0'. Be sure to set LLVM_CONFIG to the right executable path.
    Read the documentation at http://llvmlite.pydata.org/ for more information about building llvmlite.

    error: command '/home/leni/leni2/bin/python3' failed with exit status 1

    ----------------------------------------
Command "/home/leni/leni2/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-8cn56k5l/llvmlite/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-uibprf7r-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/leni/leni2/include/site/python3.6/llvmlite" failed with error code 1 in /tmp/pip-build-8cn56k5l/llvmlite/

他们最重要的部分似乎是:

RuntimeError: Building llvmlite requires LLVM 10.0.x or 9.0.x, got '6.0.0'. Be sure to set LLVM_CONFIG to the right executable path.

我尝试安装 llvm-10 并按照指示设置 LLVM_CONFIG 变量:

LLVM_CONFIG=/usr/bin/llvm-config-10

然后当我调用这个变量时我得到版本 10:

> $LLVM_CONFIG --version
10.0.0

不过好像6.0.0版本还在附近:

> ls -l /usr/bin/llvm*
lrwxrwxrwx 1 root root 33 Jul 14 12:52 /usr/bin/llvm-addr2line-10 -> ../lib/llvm-10/bin/llvm-addr2line
lrwxrwxrwx 1 root root 27 May 16  2018 /usr/bin/llvm-ar -> ../lib/llvm-6.0/bin/llvm-ar
lrwxrwxrwx 1 root root 26 Jul 14 12:52 /usr/bin/llvm-ar-10 -> ../lib/llvm-10/bin/llvm-ar
lrwxrwxrwx 1 root root 27 Apr  5  2018 /usr/bin/llvm-ar-6.0 -> ../lib/llvm-6.0/bin/llvm-ar
lrwxrwxrwx 1 root root 27 May 16  2018 /usr/bin/llvm-as -> ../lib/llvm-6.0/bin/llvm-as
lrwxrwxrwx 1 root root 26 Jul 14 12:52 /usr/bin/llvm-as-10 -> ../lib/llvm-10/bin/llvm-as
lrwxrwxrwx 1 root root 27 Apr  5  2018 /usr/bin/llvm-as-6.0 -> ../lib/llvm-6.0/bin/llvm-as
lrwxrwxrwx 1 root root 35 May 16  2018 /usr/bin/llvm-bcanalyzer -> ../lib/llvm-6.0/bin/llvm-bcanalyzer
lrwxrwxrwx 1 root root 34 Jul 14 12:52 /usr/bin/llvm-bcanalyzer-10 -> ../lib/llvm-10/bin/llvm-bcanalyzer
lrwxrwxrwx 1 root root 35 Apr  5  2018 /usr/bin/llvm-bcanalyzer-6.0 -> ../lib/llvm-6.0/bin/llvm-bcanalyzer
lrwxrwxrwx 1 root root 27 Jul 14 12:52 /usr/bin/llvm-cat-10 -> ../lib/llvm-10/bin/llvm-cat
lrwxrwxrwx 1 root root 28 Apr  5  2018 /usr/bin/llvm-cat-6.0 -> ../lib/llvm-6.0/bin/llvm-cat
lrwxrwxrwx 1 root root 34 Jul 14 12:52 /usr/bin/llvm-cfi-verify-10 -> ../lib/llvm-10/bin/llvm-cfi-verify
lrwxrwxrwx 1 root root 35 Apr  5  2018 /usr/bin/llvm-cfi-verify-6.0 -> ../lib/llvm-6.0/bin/llvm-cfi-verify
lrwxrwxrwx 1 root root 31 May 16  2018 /usr/bin/llvm-config -> ../lib/llvm-6.0/bin/llvm-config
lrwxrwxrwx 1 root root 30 Jul 14 12:52 /usr/bin/llvm-config-10 -> ../lib/llvm-10/bin/llvm-config
lrwxrwxrwx 1 root root 31 Apr  5  2018 /usr/bin/llvm-config-6.0 -> ../lib/llvm-6.0/bin/llvm-config
lrwxrwxrwx 1 root root 28 May 16  2018 /usr/bin/llvm-cov -> ../lib/llvm-6.0/bin/llvm-cov
lrwxrwxrwx 1 root root 27 Jul 14 12:52 /usr/bin/llvm-cov-10 -> ../lib/llvm-10/bin/llvm-cov
lrwxrwxrwx 1 root root 28 Apr  5  2018 /usr/bin/llvm-cov-6.0 -> ../lib/llvm-6.0/bin/llvm-cov
lrwxrwxrwx 1 root root 30 Jul 14 12:52 /usr/bin/llvm-c-test-10 -> ../lib/llvm-10/bin/llvm-c-test
lrwxrwxrwx 1 root root 31 Apr  5  2018 /usr/bin/llvm-c-test-6.0 -> ../lib/llvm-6.0/bin/llvm-c-test
lrwxrwxrwx 1 root root 30 Jul 14 12:52 /usr/bin/llvm-cvtres-10 -> ../lib/llvm-10/bin/llvm-cvtres
lrwxrwxrwx 1 root root 31 Apr  5  2018 /usr/bin/llvm-cvtres-6.0 -> ../lib/llvm-6.0/bin/llvm-cvtres
lrwxrwxrwx 1 root root 31 Jul 14 12:52 /usr/bin/llvm-cxxdump-10 -> ../lib/llvm-10/bin/llvm-cxxdump
lrwxrwxrwx 1 root root 32 Apr  5  2018 /usr/bin/llvm-cxxdump-6.0 -> ../lib/llvm-6.0/bin/llvm-cxxdump
lrwxrwxrwx 1 root root 31 Jul 14 12:52 /usr/bin/llvm-cxxfilt-10 -> ../lib/llvm-10/bin/llvm-cxxfilt
lrwxrwxrwx 1 root root 32 Apr  5  2018 /usr/bin/llvm-cxxfilt-6.0 -> ../lib/llvm-6.0/bin/llvm-cxxfilt
lrwxrwxrwx 1 root root 30 Jul 14 12:52 /usr/bin/llvm-cxxmap-10 -> ../lib/llvm-10/bin/llvm-cxxmap
lrwxrwxrwx 1 root root 29 May 16  2018 /usr/bin/llvm-diff -> ../lib/llvm-6.0/bin/llvm-diff
lrwxrwxrwx 1 root root 28 Jul 14 12:52 /usr/bin/llvm-diff-10 -> ../lib/llvm-10/bin/llvm-diff
lrwxrwxrwx 1 root root 29 Apr  5  2018 /usr/bin/llvm-diff-6.0 -> ../lib/llvm-6.0/bin/llvm-diff
lrwxrwxrwx 1 root root 28 May 16  2018 /usr/bin/llvm-dis -> ../lib/llvm-6.0/bin/llvm-dis
lrwxrwxrwx 1 root root 27 Jul 14 12:52 /usr/bin/llvm-dis-10 -> ../lib/llvm-10/bin/llvm-dis
lrwxrwxrwx 1 root root 28 Apr  5  2018 /usr/bin/llvm-dis-6.0 -> ../lib/llvm-6.0/bin/llvm-dis
lrwxrwxrwx 1 root root 31 Jul 14 12:52 /usr/bin/llvm-dlltool-10 -> ../lib/llvm-10/bin/llvm-dlltool
lrwxrwxrwx 1 root root 32 Apr  5  2018 /usr/bin/llvm-dlltool-6.0 -> ../lib/llvm-6.0/bin/llvm-dlltool
lrwxrwxrwx 1 root root 33 Apr  5  2018 /usr/bin/llvm-dsymutil-6.0 -> ../lib/llvm-6.0/bin/llvm-dsymutil
lrwxrwxrwx 1 root root 34 May 16  2018 /usr/bin/llvm-dwarfdump -> ../lib/llvm-6.0/bin/llvm-dwarfdump
lrwxrwxrwx 1 root root 33 Jul 14 12:52 /usr/bin/llvm-dwarfdump-10 -> ../lib/llvm-10/bin/llvm-dwarfdump
lrwxrwxrwx 1 root root 34 Apr  5  2018 /usr/bin/llvm-dwarfdump-6.0 -> ../lib/llvm-6.0/bin/llvm-dwarfdump
lrwxrwxrwx 1 root root 27 Jul 14 12:52 /usr/bin/llvm-dwp-10 -> ../lib/llvm-10/bin/llvm-dwp
lrwxrwxrwx 1 root root 28 Apr  5  2018 /usr/bin/llvm-dwp-6.0 -> ../lib/llvm-6.0/bin/llvm-dwp
lrwxrwxrwx 1 root root 30 Jul 14 12:52 /usr/bin/llvm-elfabi-10 -> ../lib/llvm-10/bin/llvm-elfabi
lrwxrwxrwx 1 root root 32 Jul 14 12:52 /usr/bin/llvm-exegesis-10 -> ../lib/llvm-10/bin/llvm-exegesis
lrwxrwxrwx 1 root root 32 May 16  2018 /usr/bin/llvm-extract -> ../lib/llvm-6.0/bin/llvm-extract
lrwxrwxrwx 1 root root 31 Jul 14 12:52 /usr/bin/llvm-extract-10 -> ../lib/llvm-10/bin/llvm-extract
lrwxrwxrwx 1 root root 32 Apr  5  2018 /usr/bin/llvm-extract-6.0 -> ../lib/llvm-6.0/bin/llvm-extract
lrwxrwxrwx 1 root root 27 Jul 14 12:52 /usr/bin/llvm-ifs-10 -> ../lib/llvm-10/bin/llvm-ifs
lrwxrwxrwx 1 root root 41 Jul 14 12:52 /usr/bin/llvm-install-name-tool-10 -> ../lib/llvm-10/bin/llvm-install-name-tool
lrwxrwxrwx 1 root root 31 Jul 14 12:52 /usr/bin/llvm-jitlink-10 -> ../lib/llvm-10/bin/llvm-jitlink
lrwxrwxrwx 1 root root 27 Jul 14 12:52 /usr/bin/llvm-lib-10 -> ../lib/llvm-10/bin/llvm-lib
lrwxrwxrwx 1 root root 28 Apr  5  2018 /usr/bin/llvm-lib-6.0 -> ../lib/llvm-6.0/bin/llvm-lib
lrwxrwxrwx 1 root root 29 May 16  2018 /usr/bin/llvm-link -> ../lib/llvm-6.0/bin/llvm-link
lrwxrwxrwx 1 root root 28 Jul 14 12:52 /usr/bin/llvm-link-10 -> ../lib/llvm-10/bin/llvm-link
lrwxrwxrwx 1 root root 29 Apr  5  2018 /usr/bin/llvm-link-6.0 -> ../lib/llvm-6.0/bin/llvm-link
lrwxrwxrwx 1 root root 28 Jul 14 12:52 /usr/bin/llvm-lipo-10 -> ../lib/llvm-10/bin/llvm-lipo
lrwxrwxrwx 1 root root 27 Jul 14 12:52 /usr/bin/llvm-lto-10 -> ../lib/llvm-10/bin/llvm-lto
lrwxrwxrwx 1 root root 28 Jul 14 12:52 /usr/bin/llvm-lto2-10 -> ../lib/llvm-10/bin/llvm-lto2
lrwxrwxrwx 1 root root 29 Apr  5  2018 /usr/bin/llvm-lto2-6.0 -> ../lib/llvm-6.0/bin/llvm-lto2
lrwxrwxrwx 1 root root 28 Apr  5  2018 /usr/bin/llvm-lto-6.0 -> ../lib/llvm-6.0/bin/llvm-lto
lrwxrwxrwx 1 root root 27 May 16  2018 /usr/bin/llvm-mc -> ../lib/llvm-6.0/bin/llvm-mc
lrwxrwxrwx 1 root root 26 Jul 14 12:52 /usr/bin/llvm-mc-10 -> ../lib/llvm-10/bin/llvm-mc
lrwxrwxrwx 1 root root 27 Apr  5  2018 /usr/bin/llvm-mc-6.0 -> ../lib/llvm-6.0/bin/llvm-mc
lrwxrwxrwx 1 root root 27 Jul 14 12:52 /usr/bin/llvm-mca-10 -> ../lib/llvm-10/bin/llvm-mca
lrwxrwxrwx 1 root root 33 Apr  5  2018 /usr/bin/llvm-mcmarkup-6.0 -> ../lib/llvm-6.0/bin/llvm-mcmarkup
lrwxrwxrwx 1 root root 34 Jul 14 12:52 /usr/bin/llvm-modextract-10 -> ../lib/llvm-10/bin/llvm-modextract
lrwxrwxrwx 1 root root 35 Apr  5  2018 /usr/bin/llvm-modextract-6.0 -> ../lib/llvm-6.0/bin/llvm-modextract
lrwxrwxrwx 1 root root 26 Jul 14 12:52 /usr/bin/llvm-mt-10 -> ../lib/llvm-10/bin/llvm-mt
lrwxrwxrwx 1 root root 27 Apr  5  2018 /usr/bin/llvm-mt-6.0 -> ../lib/llvm-6.0/bin/llvm-mt
lrwxrwxrwx 1 root root 27 May 16  2018 /usr/bin/llvm-nm -> ../lib/llvm-6.0/bin/llvm-nm
lrwxrwxrwx 1 root root 26 Jul 14 12:52 /usr/bin/llvm-nm-10 -> ../lib/llvm-10/bin/llvm-nm
lrwxrwxrwx 1 root root 27 Apr  5  2018 /usr/bin/llvm-nm-6.0 -> ../lib/llvm-6.0/bin/llvm-nm
lrwxrwxrwx 1 root root 31 Jul 14 12:52 /usr/bin/llvm-objcopy-10 -> ../lib/llvm-10/bin/llvm-objcopy
lrwxrwxrwx 1 root root 32 Apr  5  2018 /usr/bin/llvm-objcopy-6.0 -> ../lib/llvm-6.0/bin/llvm-objcopy
lrwxrwxrwx 1 root root 32 May 16  2018 /usr/bin/llvm-objdump -> ../lib/llvm-6.0/bin/llvm-objdump
lrwxrwxrwx 1 root root 31 Jul 14 12:52 /usr/bin/llvm-objdump-10 -> ../lib/llvm-10/bin/llvm-objdump
lrwxrwxrwx 1 root root 32 Apr  5  2018 /usr/bin/llvm-objdump-6.0 -> ../lib/llvm-6.0/bin/llvm-objdump
lrwxrwxrwx 1 root root 34 Jul 14 12:52 /usr/bin/llvm-opt-report-10 -> ../lib/llvm-10/bin/llvm-opt-report
lrwxrwxrwx 1 root root 35 Apr  5  2018 /usr/bin/llvm-opt-report-6.0 -> ../lib/llvm-6.0/bin/llvm-opt-report
lrwxrwxrwx 1 root root 31 Jul 14 12:52 /usr/bin/llvm-pdbutil-10 -> ../lib/llvm-10/bin/llvm-pdbutil
lrwxrwxrwx 1 root root 32 Apr  5  2018 /usr/bin/llvm-pdbutil-6.0 -> ../lib/llvm-6.0/bin/llvm-pdbutil
lrwxrwxrwx 1 root root 38 Jul 14 12:52 /usr/bin/llvm-PerfectShuffle-10 -> ../lib/llvm-10/bin/llvm-PerfectShuffle
lrwxrwxrwx 1 root root 39 Apr  5  2018 /usr/bin/llvm-PerfectShuffle-6.0 -> ../lib/llvm-6.0/bin/llvm-PerfectShuffle
lrwxrwxrwx 1 root root 33 May 16  2018 /usr/bin/llvm-profdata -> ../lib/llvm-6.0/bin/llvm-profdata
lrwxrwxrwx 1 root root 32 Jul 14 12:52 /usr/bin/llvm-profdata-10 -> ../lib/llvm-10/bin/llvm-profdata
lrwxrwxrwx 1 root root 33 Apr  5  2018 /usr/bin/llvm-profdata-6.0 -> ../lib/llvm-6.0/bin/llvm-profdata
lrwxrwxrwx 1 root root 31 May 16  2018 /usr/bin/llvm-ranlib -> ../lib/llvm-6.0/bin/llvm-ranlib
lrwxrwxrwx 1 root root 30 Jul 14 12:52 /usr/bin/llvm-ranlib-10 -> ../lib/llvm-10/bin/llvm-ranlib
lrwxrwxrwx 1 root root 31 Apr  5  2018 /usr/bin/llvm-ranlib-6.0 -> ../lib/llvm-6.0/bin/llvm-ranlib
lrwxrwxrwx 1 root root 26 Jul 14 12:52 /usr/bin/llvm-rc-10 -> ../lib/llvm-10/bin/llvm-rc
lrwxrwxrwx 1 root root 27 Apr  5  2018 /usr/bin/llvm-rc-6.0 -> ../lib/llvm-6.0/bin/llvm-rc
lrwxrwxrwx 1 root root 31 Jul 14 12:52 /usr/bin/llvm-readelf-10 -> ../lib/llvm-10/bin/llvm-readelf
lrwxrwxrwx 1 root root 32 Apr  5  2018 /usr/bin/llvm-readelf-6.0 -> ../lib/llvm-6.0/bin/llvm-readelf
lrwxrwxrwx 1 root root 31 Jul 14 12:52 /usr/bin/llvm-readobj-10 -> ../lib/llvm-10/bin/llvm-readobj
lrwxrwxrwx 1 root root 32 Apr  5  2018 /usr/bin/llvm-readobj-6.0 -> ../lib/llvm-6.0/bin/llvm-readobj
lrwxrwxrwx 1 root root 30 Jul 14 12:52 /usr/bin/llvm-reduce-10 -> ../lib/llvm-10/bin/llvm-reduce
lrwxrwxrwx 1 root root 31 May 16  2018 /usr/bin/llvm-rtdyld -> ../lib/llvm-6.0/bin/llvm-rtdyld
lrwxrwxrwx 1 root root 30 Jul 14 12:52 /usr/bin/llvm-rtdyld-10 -> ../lib/llvm-10/bin/llvm-rtdyld
lrwxrwxrwx 1 root root 31 Apr  5  2018 /usr/bin/llvm-rtdyld-6.0 -> ../lib/llvm-6.0/bin/llvm-rtdyld
lrwxrwxrwx 1 root root 29 May 16  2018 /usr/bin/llvm-size -> ../lib/llvm-6.0/bin/llvm-size
lrwxrwxrwx 1 root root 28 Jul 14 12:52 /usr/bin/llvm-size-10 -> ../lib/llvm-10/bin/llvm-size
lrwxrwxrwx 1 root root 29 Apr  5  2018 /usr/bin/llvm-size-6.0 -> ../lib/llvm-6.0/bin/llvm-size
lrwxrwxrwx 1 root root 29 Jul 14 12:52 /usr/bin/llvm-split-10 -> ../lib/llvm-10/bin/llvm-split
lrwxrwxrwx 1 root root 30 Apr  5  2018 /usr/bin/llvm-split-6.0 -> ../lib/llvm-6.0/bin/llvm-split
lrwxrwxrwx 1 root root 30 Jul 14 12:52 /usr/bin/llvm-stress-10 -> ../lib/llvm-10/bin/llvm-stress
lrwxrwxrwx 1 root root 31 Apr  5  2018 /usr/bin/llvm-stress-6.0 -> ../lib/llvm-6.0/bin/llvm-stress
lrwxrwxrwx 1 root root 31 Jul 14 12:52 /usr/bin/llvm-strings-10 -> ../lib/llvm-10/bin/llvm-strings
lrwxrwxrwx 1 root root 32 Apr  5  2018 /usr/bin/llvm-strings-6.0 -> ../lib/llvm-6.0/bin/llvm-strings
lrwxrwxrwx 1 root root 29 Jul 14 12:52 /usr/bin/llvm-strip-10 -> ../lib/llvm-10/bin/llvm-strip
lrwxrwxrwx 1 root root 35 May 16  2018 /usr/bin/llvm-symbolizer -> ../lib/llvm-6.0/bin/llvm-symbolizer
lrwxrwxrwx 1 root root 34 Jul 14 12:52 /usr/bin/llvm-symbolizer-10 -> ../lib/llvm-10/bin/llvm-symbolizer
lrwxrwxrwx 1 root root 35 Apr  5  2018 /usr/bin/llvm-symbolizer-6.0 -> ../lib/llvm-6.0/bin/llvm-symbolizer
lrwxrwxrwx 1 root root 31 May 16  2018 /usr/bin/llvm-tblgen -> ../lib/llvm-6.0/bin/llvm-tblgen
lrwxrwxrwx 1 root root 30 Jul 14 12:52 /usr/bin/llvm-tblgen-10 -> ../lib/llvm-10/bin/llvm-tblgen
lrwxrwxrwx 1 root root 31 Apr  5  2018 /usr/bin/llvm-tblgen-6.0 -> ../lib/llvm-6.0/bin/llvm-tblgen
lrwxrwxrwx 1 root root 31 Jul 14 12:52 /usr/bin/llvm-undname-10 -> ../lib/llvm-10/bin/llvm-undname
lrwxrwxrwx 1 root root 28 Jul 14 12:52 /usr/bin/llvm-xray-10 -> ../lib/llvm-10/bin/llvm-xray
lrwxrwxrwx 1 root root 29 Apr  5  2018 /usr/bin/llvm-xray-6.0 -> ../lib/llvm-6.0/bin/llvm-xray

我对此服务器的访问权限非常有限(绝对不是 root)(冗长而复杂的故事),所以有没有一种非 root 方式可以强制这个东西使用 llvm 版本 10,以便我可以安装 numpy ?

您可以试试:

LLVM_CONFIG=/usr/bin/llvm-config-10 CXXFLAGS=-fPIC pip3 install llvmlite