在Cedar集群通过virtualenv安装Numba导入时libllvmlite.so报错
可行解决方案步骤
- 第一步:卸载现有版本
先激活你的虚拟环境,执行命令完全删除现有安装包:pip uninstall -y numba llvmlite - 第二步:加载集群预编译依赖模块
Cedar集群的模块系统提供了适配集群环境的LLVM和编译工具链,执行以下命令加载对应版本依赖(llvmlite 0.36.0严格匹配LLVM 11版本):
module load gcc/9.3.0 module load llvm/11.0.0 module load python/3.7
- 第三步:源码编译安装对应版本
避免pip拉取的通用预编译包和集群环境不兼容,强制从源码编译安装:pip install --no-binary :all: llvmlite==0.36.0 numba==0.53.1 - 可选兜底方案:重建虚拟环境
如果上述步骤执行后仍然报错,说明你原有虚拟环境是未加载对应python模块时创建的,存在基础环境适配问题,删除原有虚拟环境,加载好python/3.7模块后重新创建virtualenv,再重复前三个步骤即可。
注意事项
- 每次激活虚拟环境运行代码前,都需要先执行第二步的模块加载命令,否则会因环境变量缺少LLVM库路径再次触发报错。你可以将三个module load命令写入你虚拟环境的
bin/activate脚本末尾,实现激活环境时自动加载依赖。 - 安装完成后可进入
/path/to/ENV/lib/python3.7/site-packages/llvmlite/binding/目录,执行ldd libllvmlite.so检查所有依赖是否都能正常找到,无not found项即可正常导入numba。
内容的提问来源于stack exchange,提问作者patrick7
相关产品推荐
相关产品推荐

