pip 安装某个包之后,Jupyter Lab仍旧显示包冲突;例如:Numba needs NumPy 2.1 or less. Got NumPy 2.2.

发布于:2025-04-01 ⋅ 阅读:(14) ⋅ 点赞:(0)

异常提示

Numba needs NumPy 2.1 or less. Got NumPy 2.2.

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
Cell In[8], line 5
      3 import pywt
      4 import matplotlib.pyplot as plt
----> 5 from pyts.image import MarkovTransitionField, RecurrencePlot
      6 from scipy.signal import hilbert
      8 # 读取数据

File ~\anaconda3\envs\****\Lib\site-packages\pyts\image\__init__.py:6
      1 """
      2 The :mod:pyts.image module includes algorithms that transform times series
      3 into images.
      4 """
----> 6 from .gaf import GramianAngularField
      7 from .mtf import MarkovTransitionField
      8 from .recurrence import RecurrencePlot

File ~\anaconda3\envs\****\Lib\site-packages\pyts\image\gaf.py:8
      6 import numpy as np
      7 from math import ceil
----> 8 from numba import njit, prange
      9 from sklearn.base import BaseEstimator
     10 from sklearn.utils.validation import check_array

File ~\anaconda3\envs\****\Lib\site-packages\numba\__init__.py:59
     54             msg = ("Numba requires SciPy version 1.0 or greater. Got SciPy "
     55                    f"{scipy.__version__}.")
     56             raise ImportError(msg)
---> 59 _ensure_critical_deps()
     60 # END DO NOT MOVE
     61 # ---------------------- WARNING WARNING WARNING ----------------------------
     64 from ._version import get_versions

File ~\anaconda3\envs\****\Lib\site-packages\numba\__init__.py:45, in _ensure_critical_deps()
     42 if numpy_version > (2, 1):
     43     msg = (f"Numba needs NumPy 2.1 or less. Got NumPy "
     44            f"{numpy_version[0]}.{numpy_version[1]}.")
---> 45     raise ImportError(msg)
     47 try:
     48     import scipy

ImportError: Numba needs NumPy 2.1 or less. Got NumPy 2.2.

环境的包信息

numba 0.61.0
numexpr 2.10.1
numpy 2.1.3

ChatGPT 说:

ChatGPT
你现在的情况是:

NumPy 版本是 2.1.3 ✅(符合要求)
但 Numba 报错说你安装的是 NumPy 2.2 ❌,这可能是由于某些模块仍然读取到了旧的 NumPy 2.2 安装。
可能原因
你之前装过 NumPy 2.2,虽然现在降回了 2.1.3,但部分缓存或依赖路径未刷新。
pip 和 conda 环境混用,导致环境混乱。
Python 启动时使用的不是你想象的那个环境。
✅ 解决步骤建议
🔍 1. 检查 Python 正在使用哪个 NumPy
在 Jupyter 或 Python 里运行下面这段代码:
python
复制代码
import numpy
print(numpy.version)
print(numpy.file)
确认是否真的是在用 2.1.3,以及它是在哪个路径下加载的。

主要是这里,当我们在命令行pip安装需要的包之后,但是在Jupyter Lab里面的缓存路径仍是原来的包路径,这样就导致二者之间存在冲突。
需要做的是:关闭当前jupyter lab,然后重新打开,选择环境

🔧 2. 强制重装 NumPy 并清理缓存
bash
复制代码
pip uninstall numpy -y
pip cache purge
pip install numpy==2.1.3
之后再运行一次:

pip show numpy
确认安装无误。

🔧 3. 确保 numba 是最新版本(或兼容版本)
你的 Numba 是 0.61.0,这个版本较旧,不支持 NumPy 2.1+。你需要升级 Numba:

pip install --upgrade numba
目前(截至 2024 年底)Numba 0.59 之前不支持 NumPy 2.x,请使用 Numba 0.59.0 或更高版本(建议 0.59 ~ 0.60 区间)。