tx2安装numba时的坑

老康神在tx2上装了一晚上的numba没装上,花了两小时总算想起来以前是怎么装的了。为了不让老康神再被坑我决定还是记录一下怎么装。

坑的由来

老康神忙活一晚上的问题是这样的。

KCFpy这个库呢,要用到Python的numba库。numba呢,要用到llvmlite这个库。llvmlite,使用pip直接安装的话,会要求llvm库在6.0.0以上。tx2上用apt装llvm,llvm的库版本是3.8,会因为llvm库版本太低而无法安装llvmlite。

而如果要编译安装llvm6.0.0的话,要用clang,然后gcc和clang之前的冲突又是一件麻烦事。然后,llvm提供预编译的aarch64的llvm6.0.0,但是,反正我尝试了半天也没成功让llvmlite去引用它……可能还是对于链接的理解不够。总之,这里变成了一个死结。

解决方法

既然,6.0.0太高,我弄不出来,我为什么不降低llvmlite的版本让它用3.8.0呢?

llvmlite的github页面上,llvmlite-github,列出了llvmlite各版本对llvm库的要求,可以看到,0.13.0-0.15.0用的是3.8.x的llvm。就安装这一版的llvmlite。

同时,numba最新版要求用的是最新的llvmlite。所以也要对numba进行降级。在numba的github release处,可以查到一些需求库的信息:numba-release-github,查到是0.29.0需求是0.14.0的llvmlite。所以安装0.29.0。

注意点

安装numba时一定要输入如下指令:

1
pip install numba==0.29.0 llvmlite==0.15.0

如果只输入

1
pip install numba==0.29.0

或者分开输入两条指令,都会导致numba去找了最新的llvmlite,然后导致安装失败。

至此,numba安装上了。