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

如何解决Python运行scanpy时出现的ContextualVersionConflict版本冲突问题

解决scanpy运行neighbors函数的llvmlite版本冲突方案

根因说明

报错是因为当前Anaconda环境中numba与llvmlite版本严格绑定不匹配,且旧版llvmlite是通过distutils预安装的,pip无权限完整卸载,因此直接用pip升级会报错。

可行解决方案

方案1:用conda直接修复现有环境的版本匹配(优先推荐)

  • 不要使用pip操作,直接运行conda命令安装匹配的版本对:
    conda install -c conda-forge numba=0.57 llvmlite=0.40
    conda会自动处理distutils安装包的卸载和替换,不会触发pip的权限报错。
  • 安装完成后验证版本匹配:
    运行如下代码确认版本正常:
import numba
import llvmlite
print(numba.__version__, llvmlite.__version__)

确认无报错后重新运行scanpy的sc.pp.neighbors代码即可。

方案2:新建独立的单细胞分析环境(彻底解决所有依赖冲突)

如果现有环境依赖太杂修复失败,直接新建干净的专属环境:

  • 执行命令创建环境:conda create -n scrna_analysis python=3.9
  • 激活环境:conda activate scrna_analysis
  • 一键安装匹配好的scanpy全量依赖:conda install -c conda-forge scanpy python-igraph leidenalg
    新环境中不存在历史依赖冲突,所有功能均可正常运行。

方案3:临时屏蔽警告(应急使用)

如果临时需要运行代码不想调整环境,可在导入scanpy前添加代码屏蔽该警告,不影响常规功能运行:

import warnings
warnings.filterwarnings("ignore", message="Numba extension module 'sparse._numba_extension' failed to load")

注意:该方案仅为临时处理方式,长期使用仍建议修复依赖版本,避免后续运行降维、聚类等功能时出现未知报错


内容的提问来源于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 00:57:02