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

Numba导入报错提示需NumPy≤1.21 安装对应版本仍不兼容

Numba 1.21版本误报问题修复方案

这个报错是Numba 0.55.1版本自带的版本校验逻辑bug,和Python版本、NumPy实际兼容性无关,不需要反复重建环境或降级NumPy到1.20.x——降级触发的glib报错是低版本NumPy和新系统C库不兼容导致的额外问题,完全可以避免。

根本原因

Numba 0.55.1的_ensure_critical_deps()依赖校验函数中,NumPy版本判断代码存在疏漏:

if numpy_version > (1, 21):
    raise ImportError("Numba needs NumPy 1.21 or less")

Python元组比较规则为:按索引逐位比较元素,若短元组是长元组的前缀,则短元组值更小。所有1.21.x系列NumPy的版本元组为长度3的(1, 21, 补丁版本号),和长度2的(1, 21)比较时会被判定为更大,因此哪怕是1.21.0版本也会触发误报,和实际版本兼容性无关。

修复方法(按推荐优先级排序)

  • 直接升级Numba到已修复该bug的版本,这是最稳妥无侵入的方案:
    conda install numba>=0.55.2
    
    0.55.2及后续所有Numba版本已将校验逻辑修正为if numpy_version >= (1, 22),可正常兼容NumPy 1.21.x全系列版本,不需要调整现有Python、NumPy安装版本,执行完重启Jupyter内核即可正常使用。
  • 若项目要求必须固定使用Numba 0.55.1,可直接修改包内校验代码绕过误报:
    1. 在当前环境执行以下命令,获取Numba安装路径:
      import numba
      print(numba.__file__)
      
    2. 打开输出路径同级目录下的__init__.py文件,定位到_ensure_critical_deps函数内的NumPy版本判断行,将原代码:
      if numpy_version > (1, 21):
      
      修改为:
      if numpy_version >= (1, 22):
      
    3. 保存文件后重启Jupyter内核即可正常导入。
  • 若完成上述操作后仍报错,先执行以下命令排查Jupyter内核混装问题:
    import numpy
    print(numpy.__version__)
    print(numpy.__file__)
    
    如果输出的版本不是当前conda环境安装的1.21.x、或文件路径不在scycom环境目录下,说明Jupyter绑定了其他Python环境,执行conda install ipykernel为当前环境重新注册内核即可。

内容的提问来源于stack exchange,提问作者Jorge Alonso

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:01:10