You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用scanpy的sc.pp.neighbors时报LLVM ERROR: __svml_sqrtf8错误如何解决

根本原因

你遇到的LLVM ERROR: Symbol not found: __svml_sqrtf8报错是numba版本与英特尔短向量数学库(SVML)的兼容问题导致的,进程触发该错误后会直接终止,对应Jupyter环境下就是内核崩溃,和数据集大小无关。

解决方案

方案1:更换numba到兼容版本

你当前使用的numba 0.54.0是触发该兼容问题的高发版本,替换为验证过的稳定版本即可解决:

  • 若使用pip管理依赖:
    先卸载现有版本:pip uninstall numba -y
    再安装兼容版本:pip install numba==0.55.2
  • 若使用conda管理依赖:
    直接执行:conda install numba=0.55.2 -c conda-forge
    安装完成后重新运行sc.pp.neighbors(adata)即可。

方案2:禁用numba的SVML优化(无需改动依赖版本)

如果不想调整现有环境的依赖版本,可以在导入scanpy前添加环境变量关闭有问题的SVML调用,在代码最开头加入以下内容即可:

import os
os.environ['NUMBA_DISABLE_INTEL_SVML'] = '1'
import scanpy as sc
# 后续保持原有代码不变

该方案仅关闭存在兼容问题的优化项,对2万细胞规模的数据集来说,计算速度差异几乎感知不到。

方案3:切换近邻计算后端(无需改动依赖版本)

sc.pp.neighbors支持切换不依赖numba的计算后端,只需要修改一行调用代码即可避开相关问题:
把原来的调用改为:sc.pp.neighbors(adata, method='sklearn')

内容的提问来源于stack exchange,提问作者Ofir Shorer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 03:42:04